怎么在JavaScript中使用cavas截图网页-创新互联

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

琼结ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

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


div按钮代码

下载按钮
//href用来取到值 要写个空 down load是下载图片出来的名称

jsp代码

function test() {
     var canvas2 = document.createElement("canvas");           //创建一个新的canvas
  let _canvas = document.querySelector('#dijit__TemplatedMixin_0');      //这里面填写 你需要截图的div
  var w = parseInt(window.getComputedStyle(_canvas).width);  
  var h = 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";       
  var context = 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截图网页,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


文章名称:怎么在JavaScript中使用cavas截图网页-创新互联
当前链接:http://ybzwz.com/article/ccjspj.html