国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js實(shí)現(xiàn)截圖功能

mayaohua / 3510人閱讀

摘要:前幾天公司項(xiàng)目里有這樣一個(gè)需求,把網(wǎng)頁的某一部分能夠一鍵截圖。這個(gè)功能其實(shí)就是對(duì)人力的一個(gè)優(yōu)化,如果是人為做的話,相信大家都知道怎么做用截圖工具在指定區(qū)域截圖,然后保存到本地,再上傳的服務(wù)器上去。

前幾天公司項(xiàng)目里有這樣一個(gè)需求,把網(wǎng)頁的某一部分能夠一鍵截圖。這個(gè)功能其實(shí)就是對(duì)人力的一個(gè)優(yōu)化,如果是人為做的話,相信大家都知道怎么做(用截圖工具在指定區(qū)域截圖,然后保存到本地,再上傳的服務(wù)器上去)。我這個(gè)主要就解決這個(gè)批量的人力的優(yōu)化。好,廢話不多說了。直接上邏輯和代碼。"

這個(gè)問題的解決方案:html to canvas to png.
目前有一個(gè)這樣的插件: html2canvas,

     html2canvas($targetElem, {
         useCORS: true,
         onrendered: function(canvas) {
         }
         });

這個(gè)"$targetElem"就是那個(gè)要轉(zhuǎn)換的html, useCORS 用來設(shè)置圖片是否跨域(如html圖片域名和當(dāng)前網(wǎng)站不是同一個(gè)域名,需要設(shè)置這個(gè)屬性), onrendered 是轉(zhuǎn)換完成后執(zhí)行的方法。

里面有一種情況需要考慮:如果html標(biāo)簽里有svg標(biāo)簽, 目前htm2canvas不支持svg標(biāo)簽。
這個(gè)情況下就需要先把svg處理成html2canvas能處理標(biāo)簽。
我這策略是 svg 轉(zhuǎn)換成 canvas ,html2canvas 轉(zhuǎn)換完成,再回復(fù)svg。這里我還需要這個(gè)插件canvg(svg轉(zhuǎn)canvas)
具體代碼如下

 var nodesToRecover = [];
 var nodesToRemove = [];
 var $svgElem = $targetElem.find("svg");
 $svgElem.each(function(index, node) {
     var parentNode = node.parentNode;
     var canvas = document.createElement("canvas");

     canvg(canvas, parentNode, {ignoreMouse: true, ignoreAnimation: true});

     //將svg轉(zhuǎn)換成canvas
     nodesToRecover.push({
           parent: parentNode,
           child: node
      });
      parentNode.removeChild(node);

      nodesToRemove.push({
            parent: parentNode,
            child: canvas
       });

       parentNode.appendChild(canvas);
 });
 html2canvas($targetElem, {
      useCORS: true,
      onrendered: function(canvas) {
            var base64Image = canvas.toDataURL("image/png").substring(22);

            //回復(fù)svg
            nodesToRemove.forEach(function(pair) {
                   pair.parent.removeChild(pair.child);
            });

            nodesToRecover.forEach(function(pair) {
                   pair.parent.appendChild(pair.child);
            });
      })

這個(gè)方案,我已經(jīng)完全實(shí)現(xiàn)了,并在我們項(xiàng)目里使用了。 歡迎大家使用,如果有什么問題,可以留言給我。

最后希望大家如果覺得好,給個(gè)推薦。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/81463.html

相關(guān)文章

  • 一步一步搭建前端監(jiān)控系統(tǒng):如何將網(wǎng)頁截圖上報(bào)?

    摘要:目前已經(jīng)在運(yùn)行的線上前端監(jiān)控系統(tǒng)代碼和講解都放在這篇文章里監(jiān)控系統(tǒng)介紹及代碼用戶對(duì)前端程序員來說,就是一個(gè)黑匣子。 摘要: 通過錄屏或者截圖,快速復(fù)現(xiàn)BUG場(chǎng)景。 作者:一步一個(gè)腳印一個(gè)坑 原文:搭建前端監(jiān)控系統(tǒng)(備選)Js截圖上報(bào)篇 Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有。 PS:本文關(guān)于Fundebug錄屏功能的內(nèi)容有些不準(zhǔn)確的地方,比如錄屏并非通過截圖實(shí)現(xiàn)的,錄屏插件...

    Martin91 評(píng)論0 收藏0
  • 使用html2canvas.js實(shí)現(xiàn)功能中遇到的一些問題

    摘要:這個(gè)功能在我的瀏覽器和谷歌瀏覽器時(shí)可以實(shí)現(xiàn)功能的。但是發(fā)現(xiàn)華為自帶的瀏覽器不支持。 [1]我要實(shí)現(xiàn)的功能是用戶填寫完表單后,點(diǎn)擊提交按鈕,截圖。截圖放在一個(gè)彈層里面,給一句提示長(zhǎng)按圖片保存至手機(jī)。 showImg(https://segmentfault.com/img/bVbtFCW?w=324&h=578); js引入的是bluebird.min.js和html2canvas.js...

    Alliot 評(píng)論0 收藏0
  • 使用html2canvas.js實(shí)現(xiàn)功能中遇到的一些問題

    摘要:這個(gè)功能在我的瀏覽器和谷歌瀏覽器時(shí)可以實(shí)現(xiàn)功能的。但是發(fā)現(xiàn)華為自帶的瀏覽器不支持。 [1]我要實(shí)現(xiàn)的功能是用戶填寫完表單后,點(diǎn)擊提交按鈕,截圖。截圖放在一個(gè)彈層里面,給一句提示長(zhǎng)按圖片保存至手機(jī)。 showImg(https://segmentfault.com/img/bVbtFCW?w=324&h=578); js引入的是bluebird.min.js和html2canvas.js...

    zhisheng 評(píng)論0 收藏0
  • js實(shí)現(xiàn)截圖功能

    摘要:前幾天公司項(xiàng)目里有這樣一個(gè)需求,把網(wǎng)頁的某一部分能夠一鍵截圖。這個(gè)功能其實(shí)就是對(duì)人力的一個(gè)優(yōu)化,如果是人為做的話,相信大家都知道怎么做用截圖工具在指定區(qū)域截圖,然后保存到本地,再上傳的服務(wù)器上去。 前幾天公司項(xiàng)目里有這樣一個(gè)需求,把網(wǎng)頁的某一部分能夠一鍵截圖。這個(gè)功能其實(shí)就是對(duì)人力的一個(gè)優(yōu)化,如果是人為做的話,相信大家都知道怎么做(用截圖工具在指定區(qū)域截圖,然后保存到本地,再上傳的服務(wù)...

    sunnyxd 評(píng)論0 收藏0
  • vue項(xiàng)目中canvas實(shí)現(xiàn)截圖功能

      在vue項(xiàng)目中canvas實(shí)現(xiàn)截圖功能是常用的,下面是具體代碼:  實(shí)現(xiàn)效果:  在vue項(xiàng)目中做的一個(gè)截圖功能(只能夠截取圖片),只用鼠標(biāo)就可以在畫面中進(jìn)行框選截取。  實(shí)現(xiàn):做一個(gè)彈窗,打開彈窗的時(shí)候傳入要截的圖,接下來在這個(gè)窗口里面,點(diǎn)擊截圖按鈕,開始截圖;點(diǎn)擊取消按鈕,取消截圖。  窗口里面的html主要是三個(gè)部分,一個(gè)是可截圖區(qū)域,一個(gè)是截取圖片的回顯,一個(gè)是操作按鈕(截圖按鈕和取消...

    3403771864 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<