JS中使用cavas截图网页并解决跨域及模糊问题
网络编程 2021-07-04 16:47www.168986.cn编程入门
这篇文章主要介绍了JS中使用cavas截取网页并解决跨域以及模糊问题 ,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
前几天给了个需求对浏览器网页进行截图,把网页统计数据图形表等截图保存至用户本地。
对于网页截图,我用的是canvas实现,获取你需要截图的模块的div,从而使用canvas对你需要的模块进行截图。
我们先来引入canvas的js文件,js文件获取地址官网主页
<script type="text/javascript" src="js/html2canvas.js"></script> <script type="text/javascript" src="js/html2canvas.min.js"></script>
div按钮代码
<div><a id="down" href="" download=" rel="external nofollow" downImg">下载按钮</a></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 这两个都是来解决跨域问题的,并不可以一起使用,如果使用会出现错误。
对于截图模糊就调整canvas画布大小比如我上面写的2,画布调大,容器小,截图自然就清楚了
截图成功呈现
以上所述是长沙网络推广给大家介绍的JS中使用cavas截取网页并解决跨区及模糊问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程