国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS中使用cavas截圖網頁并解決跨域及模糊問題

2024-05-06 15:28:01
字體:
來源:轉載
供稿:網友

前幾天給了個需求對瀏覽器網頁進行截圖,把網頁統計數據圖形表等截圖保存至用戶本地。

首先對于網頁截圖,我用的是canvas實現,獲取你需要截圖的模塊的div,從而使用canvas對你需要的模塊進行截圖。

我們先來引入canvas的js文件,js文件獲取地址官網主頁:http://html2canvas.hertzen.com/

<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,畫布調大,容器小,截圖自然就清楚了

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 米林县| 遂川县| 金寨县| 萨嘎县| 锡林郭勒盟| 大荔县| 新巴尔虎左旗| 邯郸市| 德化县| 贵南县| 中牟县| 大姚县| 天等县| 高密市| 长垣县| 凉城县| 贵德县| 吉安县| 武威市| 涡阳县| 巴南区| 双柏县| 额敏县| 象州县| 昭苏县| 元谋县| 华宁县| 尼勒克县| 合肥市| 溆浦县| 揭阳市| 瑞丽市| 伊春市| 壤塘县| 五莲县| 祁阳县| 玉田县| 藁城市| 浙江省| 伊宁县| 清河县|