【发布时间】:2017-09-08 23:32:06
【问题描述】:
我正在将整个页面转换为画布,现在我想将其转换为可以下载的图像:
html2canvas(document.body, {
allowTaint: true,
onrendered: function(canvas) {
document.body.appendChild(canvas).setAttribute("id", "canvas");
var canvas = document.getElementById("canvas");
var img = canvas.toDataURL("image/png");
img.setAttribute('crossOrigin', 'anonymous');
document.write('<img src="'+img+'"/>');
}
});
这可行,但我在控制台中收到此错误并且未创建图像
Uncaught (in promise) DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement':可能无法导出受污染的画布。
【问题讨论】:
-
base64 编码图像数据 ->
img -
@EricSo 您能否根据上面的代码将其详细说明为答案?
-
我认为您正试图通过库
html2canvas捕获当前屏幕,然后将其放入图像标签中,对吗?因为浏览器将捕获的图像定义为本地域。出于安全原因,浏览器不允许您使用toDataURLAPI 导出图像。 -
@EricSo 这正是我正在做的,我该如何解决?
-
我认为你无法解决它。这是出于安全原因。例如,黑客使用这种 javascript 来获取您的私人电子邮件的内容。
标签: javascript canvas