怎么在JavaScript中使用cavas截图网页

本篇文章为大家展示了怎么在JavaScript中使用cavas截图网页,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

引入canvas的js文件,js文件获取地址官网主页:

怎么在JavaScript中使用cavas截图网页

<scripttype="text/javascript"src="js/html2canvas.js"></script>
<scripttype="text/javascript"src="js/html2canvas.min.js"></script>

div按钮代码

<div><aid="down"href=""download="rel="externalnofollow"downImg">下载按钮</a></div>
//href用来取到值要写个空download是下载图片出来的名称

jsp代码

functiontest(){
    varcanvas2=document.createElement("canvas");       //创建一个新的canvas
let_canvas=document.querySelector('#dijit__TemplatedMixin_0');     //这里面填写你需要截图的div
varw=parseInt(window.getComputedStyle(_canvas).width);  
varh=parseInt(window.getComputedStyle(_canvas).height);
canvas2.width=w*2;
canvas2.height=h*2;              //将canvas画布放大2倍或者更多,然后盛放在较小的容器内,就显得不模糊了
canvas2.style.width=w+"px";
canvas2.style.height=h+"px";
varcontext=canvas2.getContext("2d");
context.scale(2,2); //指图片偏移
html2canvas(document.querySelector('#dijit__TemplatedMixin_0'),{  //写需要截图的div
taintTest:false,
useCORS:true,
allowTaint:false,  //这三串代码解决跨域问题
   canvas:canvas2
}).then(
function(canvas){
document.querySelector("#down").setAttribute('href',canvas.toDataURL());      //down设置为你的点击键
});
window.onload=test;

截图出来后,由于我的网址上有百度地图的api,地图图片等等一些东西,用canvas网页进行截图是就会发现所有图片的地方都是空白。这就是因为跨域。

来讲一下跨域问题,我举个例子说明这个跨域,比如我的网页里面有的图片不是来自于自己的服务器。那么,这张图片就和这个网页不是同域,那么html2canvas就无法对这种图片进行截图,如果你的网站的所有图片都放在单独的图片服务器上,那么用html2canvas对整个网页进行截图是就会发现所有图片的地方都是空白。

跨域问题网上好多大佬说用代理服务器来解决,但是感觉太麻烦,后来我使用了小段代码就OK了。

taintTest:false,
useCORS:true,
allowTaint:false,
//注:useCORS:true和allowTaint:true这两个都是来解决跨域问题的,但是并不可以一起使用,如果同时使用会出现错误。

上述内容就是怎么在JavaScript中使用cavas截图网页,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注恰卡编程网行业资讯频道。

发布于 2021-03-26 01:50:40
收藏
分享
海报
0 条评论
168
上一篇:怎么在JDK8环境中使用struts2 下一篇:怎么在Python中利用sorted对字典的key进行排序
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码