B_qxzb
B_qxzb
采纳率41.2%
2015-11-17 07:45 阅读 17.3k

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

50

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页面截图方面的方法也可以介绍下,谢谢~


附:
html2canvas
1、官网
https://github.com/niklasvh/html2canvas
2、这个是别人发的提问帖子,问的同样的问题,提问的人说他问题已经解决了,我他妈楞是没看懂啊http://stackoverflow.com/questions/9825962/how-to-use-html2canvas-proxy

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • Zyw5211 Zyw5211 2016-04-13 09:45

    我做的也是地图项目,实现不了。
    在网上看了好多示例,有说用代理的,还有的说的是:在跨域的服务器上设置header设置为允许跨域请求。结果也没反应。
    楼主解决问题了吧。请教一哈

    点赞 3 评论 复制链接分享
  • lixuemei45 lxm_start 2016-09-27 07:32

    在html2canvas.js源代码的 loadImage方法里添加 img.crossOrigin = "anonymous";
    原来是 if (src && images[src] === undefined) {
    img = new Image();
    if (src.match(/data:image\/.*;base64,/i)) {
    改为 if (src && images[src] === undefined) {
    img = new Image();
    img.crossOrigin = "anonymous";
    if (src.match(/data:image\/.*;base64,/i)) {

    点赞 2 评论 复制链接分享
  • showbo GoCityPass新加坡曼谷通票 2015-11-17 07:58

    内容有外域的图片

     <img src="http://avatar.csdn.net/7/B/2/3_showbo.jpg"/>
    

    需要修改img地址为你网站的代理页面,如xxx.jsp,然后发送跨域页面url地址到xxx.jsp,xxx.jsp复制将远程图片下载,这样就同源了才能绘制出图片内容

      <img src="xxx.jsp?imgurl=http://avatar.csdn.net/7/B/2/3_showbo.jpg"/>
    

    参考
    java 下载网络上的图片并保存到本地目录:http://takeme.iteye.com/blog/1683380

    点赞 评论 复制链接分享
  • buzaiguihun 在鬼混 2015-11-17 09:39

    在 java程序里面的http请求代理是这样的 HttpClient httpClient=new HttpClient();
    httpClient.getHostConfiguration().setProxy("ip地址", 端口)

    点赞 评论 复制链接分享
  • u010644256 星枫岳 2016-07-19 09:29

    楼主问题解决了嘛 请教一下

    点赞 评论 复制链接分享
  • AGodJ hello曹真 2017-07-23 18:45

    楼主问题解决了嘛 请教一下
    跟一波贴哈哈哈哈

    点赞 评论 复制链接分享

相关推荐