html2canvas截图如何解决跨域的问题?

发布于 2021-12-01 23:06:14 字数 2391 浏览 790 评论 5

1、问题描述
如果不跨域的话,截图正常。

如果有跨域的图片,那么js报错,报错信息如下:
Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

2、代码

/**
 * 截图
 */
function doScreenShot(){
    html2canvas(document.body, {
        onrendered: function(canvas) {
            canvas.id = "mycanvas";      
            var image =canvas.toDataURL("image/png").replace("image/png","image/octet-stream");
            window.location.href=image; // it will save locally
        }
    });
}



3、补充
看到官方(https://github.com/niklasvh/html2canvas)上面有介绍代理啥的,也没看明白怎么使用,好像还没有java方面的代理。有人能补充一下这方面的使用介绍么?

或者有其他的web页面截图方面的方法也可以介绍下,谢谢~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

如此安好 2021-12-05 17:48:23

没有。

浮生未歇 2021-12-05 17:22:22

目前也遇到同样的问题。

canvas调用toDataURL()时跨域的问题无法解决。

请问题主有没找到解决方法?

飘然心甜 2021-12-05 16:30:01

html2canvas出来的canvas空白就是添加了useCORS参数解决的,谢谢

旧伤慢歌 2021-12-05 09:52:38

谢谢帮大忙了,终于解决了

小情绪 2021-12-04 12:47:28

回复
https://share.weiyun.com/0d5c9cc7ac20076c1c389e2533b8f618 主要就改了上面截图的那几个地方

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文