Javascript 使用JS将Div转换为image或base64

Javascript 使用JS将Div转换为image或base64,javascript,jquery,html,canvas,Javascript,Jquery,Html,Canvas,我需要使用JS转换image或base64中的div 我在Internet上找到了执行此过程的html2canvas库,但始终显示错误: Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. 当我添加元素“canvas”时,它不会显示任何错误,但不会生成base64和两个图像 我做了有画布和没有画布的代码,找到下面的代

我需要使用JS转换image或base64中的div

我在Internet上找到了执行此过程的html2canvas库,但始终显示错误:

Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
当我添加元素“canvas”时,它不会显示任何错误,但不会生成base64和两个图像

我做了有画布和没有画布的代码,找到下面的代码

用帆布

<script type="text/javascript">  
  var canvas = document.createElement('canvas');
  var map = document.getElementById("mapa");

  canvas.appendChild(map);

  html2canvas(canvas, { 
    useCORS: true,
    onrendered: function(canvas) {
    var dataUrl= canvas.toDataURL("image/png");
    console.log("Imagem - dataurl",dataUrl);
    var encodedPng = dataUrl.substr(dataUrl.indexOf(',') + 1, dataUrl.length);
    var decodedPng = Base64Binary.decode(encodedPng);
  }});

var canvas=document.createElement('canvas');
var map=document.getElementById(“mapa”);
canvas.appendChild(map);
html2canvas(画布,{
乌塞科尔斯:没错,
onrendered:函数(画布){
var dataUrl=canvas.toDataURL(“image/png”);
log(“Imagem-dataurl”,dataurl);
var encodedPng=dataUrl.substr(dataUrl.indexOf(',')+1,dataUrl.length);
var decodedPng=Base64Binary.decode(encodedPng);
}});

没有画布

<script type="text/javascript">     
  var canvas = document.getElementById("mapa");
  html2canvas(canvas, { 
    useCORS: true,
    onrendered: function(canvas) {
    var dataUrl= canvas.toDataURL("image/png");
    console.log("Imagem - dataurl",dataUrl);
    var encodedPng = dataUrl.substr(dataUrl.indexOf(',') + 1, dataUrl.length);
    var decodedPng = Base64Binary.decode(encodedPng);
  }});

var canvas=document.getElementById(“mapa”);
html2canvas(画布,{
乌塞科尔斯:没错,
onrendered:函数(画布){
var dataUrl=canvas.toDataURL(“image/png”);
log(“Imagem-dataurl”,dataurl);
var encodedPng=dataUrl.substr(dataUrl.indexOf(',')+1,dataUrl.length);
var decodedPng=Base64Binary.decode(encodedPng);
}});

我感谢任何帮助,因为它已经不知道如何完成这项任务


Tks,

据我所知,这似乎是一个CORS问题。您是否从本地文件系统访问此文件?如果是这样,请尝试在您自己的计算机上创建一个测试服务器。我认为这与访问本地文件有关。看到了吗:它包含了你域之外的图像,因此出现了错误。我实际上是从谷歌拍的照片,所以这导致了错误。我必须改变我看照片的方式,把它放在本地。非常感谢你,