美文网首页Web前端之路让前端飞
html2canvas 问题总结(跨域 黑边 超时)

html2canvas 问题总结(跨域 黑边 超时)

作者: Tiny_z | 来源:发表于2017-04-12 08:49 被阅读1633次

1.首先是跨域问题

最近项目中有一个功能,是实现一个拼图功能,然后使用到了html2canvas这个库,在使用的过程中遇到了跨域问题
主要是canvas的todataurl这个方法,不能拿到别的域名下的资源

因为网站是用的php做的,这里就记录一下php的方式
我们需要把html2canvasproxy.php 这个脚本放到一个指定文件夹,然后配置"proxy":"/lib/html2canvas/html2canvasproxy.php"

var ele = document.getElementById('container');
    html2canvas(ele,{
        "proxy":"/lib/html2canvas/html2canvasproxy.php",//跨域支持
        background : '#ffffff',
        onrendered : function(canvas){
            var img = canvas.toDataURL("image/jpeg");
            window.open(img);

        }
    });

插件地址-php

2.如果现在还不行,可以直接在浏览器里面访问这个脚本文件

例如:http://www.domain.com/html2canvasproxy.php 查看提示信息
我这边后面把timeout改小了,改为了10

3.再一个问题就是,如果当前要截取的区域在可视区域之外,截取会丢失

例如我如果要截取的是下面的区域

如果我现在滚动了滚动条,导致当前区域有一部分在可视区域外了,例如下图


截取出来的图片就是下面这样了,可视区域之外的地方就丢失了


为了解决这个问题,我就手动把滚动条移动到顶部了$("body,html").scrollTop(0);,把当前需要截取的区域给全部显示全,然后再执行html2canvas方法

4.当在生成图片的时候,我们切换了页面,有可能生成的图会是一张空白

我的理解是,当我生成的时候,如果切换了页面,有可能导致背景色覆盖到生成的图片上,看起来就像是一张空白图,我是直接把背景去掉就解决了。
html2canvas

相关文章

  • html2canvas 问题总结(跨域 黑边 超时)

    1.首先是跨域问题 最近项目中有一个功能,是实现一个拼图功能,然后使用到了html2canvas这个库,在使用的过...

  • Electron截图功能(webview)

    使用html2canvas遇到webview容易有跨域问题,所以使用原生capturePage方法

  • HTML-获取iframe元素的正确方法

    跨域相关文章详解js跨域问题JavaScript跨域总结与解决办法 解释最清楚的jsonpWhat is JSON...

  • html2canvas跨域问题

    近期公司项目有个分享的功能,需要由前端生成包含有关用户信息的图片,点击可以保存。于是选用了html2canvas ...

  • 深入跨域问题(3) - 利用 JSONP 解决跨域

    深入跨域问题(1) - 初识 CORS 跨域资源共享;深入跨域问题(2) - 利用 CORS 解决跨域深入跨域问题...

  • 跨域与常用方案

    本文源自一次内部关于跨域的讨论分享的总结 理解跨域的重点在于:了解跨域产生的场景、原理 跨域问题只在浏览器客户端环...

  • 26.5、AJAX版本、响应状态、超时设置、同步与异步

    XMLHttpRequest版本 level 1传输纯文本数据无法跨域 level 2支持超时时间支持跨域(需要后...

  • 跨域问题总结

    跨域, 为什么需要跨域?跨域有什么不好?怎么实现跨域? 一、什么是跨域 只要协议、域名、端口有任何一个不同,都被当...

  • 跨域问题总结

    跨域, 为什么需要跨域?跨域有什么不好?怎么实现跨域? 一、什么是跨域 只要协议、域名、端口有任何一个不同,都被当...

  • 跨域问题总结

    跨域问题的总结 1、为什么会有跨域问题 原因是浏览器为了安全,而采用的同源策略(Same origon polic...

网友评论

    本文标题:html2canvas 问题总结(跨域 黑边 超时)

    本文链接:https://www.haomeiwen.com/subject/fybpattx.html