怎么在JavaScript中使用cavas截圖網(wǎng)頁(yè)

本篇文章為大家展示了怎么在JavaScript中使用cavas截圖網(wǎng)頁(yè),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)為企業(yè)提供長(zhǎng)嶺網(wǎng)站建設(shè)、長(zhǎng)嶺做網(wǎng)站、長(zhǎng)嶺網(wǎng)站設(shè)計(jì)、長(zhǎng)嶺網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、長(zhǎng)嶺企業(yè)網(wǎng)站模板建站服務(wù),十多年長(zhǎng)嶺做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

引入canvas的js文件,js文件獲取地址官網(wǎng)主頁(yè):

<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用來(lái)取到值 要寫(xiě)個(gè)空 down load是下載圖片出來(lái)的名稱(chēng)

jsp代碼

function test() {
     var canvas2 = document.createElement("canvas");           //創(chuàng)建一個(gè)新的canvas
  let _canvas = document.querySelector('#dijit__TemplatedMixin_0');      //這里面填寫(xiě) 你需要截圖的div
  var w = parseInt(window.getComputedStyle(_canvas).width);  
  var h = parseInt(window.getComputedStyle(_canvas).height); 
  canvas2.width = w * 2;
  canvas2.height = h * 2;              //將canvas畫(huà)布放大2倍或者更多,然后盛放在較小的容器內(nèi),就顯得不模糊了
  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'), {    //寫(xiě)需要截圖的div    
   taintTest : false,  
   useCORS : true,   
   allowTaint :false,   //這三串代碼解決跨域問(wèn)題  
     canvas : canvas2
  }).then(
    function(canvas) {
     document.querySelector("#down").setAttribute('href',canvas.toDataURL());      //down設(shè)置為你的點(diǎn)擊鍵
    });
window.onload = test;

截圖出來(lái)后,由于我的網(wǎng)址上有百度地圖的api,地圖圖片等等一些東西,用canvas網(wǎng)頁(yè)進(jìn)行截圖是就會(huì)發(fā)現(xiàn)所有圖片的地方都是空白。這就是因?yàn)榭缬颉?/p>

來(lái)講一下跨域問(wèn)題,我舉個(gè)例子說(shuō)明這個(gè)跨域,比如我的網(wǎng)頁(yè)里面有的圖片不是來(lái)自于自己的服務(wù)器。那么,這張圖片就和這個(gè)網(wǎng)頁(yè)不是同域,那么html2canvas就無(wú)法對(duì)這種圖片進(jìn)行截圖,如果你的網(wǎng)站的所有圖片都放在單獨(dú)的圖片服務(wù)器上,那么用html2canvas對(duì)整個(gè)網(wǎng)頁(yè)進(jìn)行截圖是就會(huì)發(fā)現(xiàn)所有圖片的地方都是空白。

跨域問(wèn)題網(wǎng)上好多大佬說(shuō)用代理服務(wù)器來(lái)解決,但是感覺(jué)太麻煩,后來(lái)我使用了小段代碼就OK了。

taintTest : false,  
useCORS : true,   
allowTaint :false, 
//注:useCORS:true和allowTaint:true 這兩個(gè)都是來(lái)解決跨域問(wèn)題的,但是并不可以一起使用,如果同時(shí)使用會(huì)出現(xiàn)錯(cuò)誤。

上述內(nèi)容就是怎么在JavaScript中使用cavas截圖網(wǎng)頁(yè),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱(chēng)欄目:怎么在JavaScript中使用cavas截圖網(wǎng)頁(yè)
文章URL:http://muchs.cn/article38/gedipp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司標(biāo)簽優(yōu)化、微信小程序、全網(wǎng)營(yíng)銷(xiāo)推廣軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司