亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

html5使用html2canvas實現瀏覽器截圖的示例

2024-09-05 07:19:08
字體:
來源:轉載
供稿:網友

最近做項目為了解決全局異常信息記錄,研究了一下瀏覽器全屏截圖功能,方便用戶發現異常時能夠快速截圖發給管理員。最終記錄的異常信息如下,上面的【截圖報告管理員】就是使用html2canvas前端插件實現的。

html2canvas介紹

以前我們只能通過其他的截圖工具來截取圖像?,F代瀏覽器的功能已經越來越強,隨著H5的逐漸普及,瀏覽器本身就可以截圖啦。html2canvas就是這樣一款前端插件,它的原理是將Dom節點在Canvas里邊畫出來。雖然很方便,但有以下限制:

  • 不支持iframe
  • 不支持跨域圖片
  • 不能在瀏覽器插件中使用
  • 部分瀏覽器上不支持SVG圖片
  • 不支持Flash
  • 不支持古代瀏覽器和IE,如果你想確認是否支持某個瀏覽器,可以用它訪問 http://deerface.sinaapp.com/ 試試 :)

由于我的使用場景很簡單,記錄一下異常信息,并且異常頁面也是由自己定義的,那么html2canvas 就足夠使用了。

使用實例

引用jquery,html2canvas即可,使用代碼也很簡單。我這里使用的是 html2canvas 0.5.0 版本

 html2canvas($("#tbl_exception"), {         onrendered: function (canvas) {             var url = canvas.toDataURL();              //以下代碼為下載此圖片功能             var triggerDownload = $("<a>").attr("href", url).attr("download", getNowFormatDate()+"異常信息.png").appendTo("body");               triggerDownload[0].click();               triggerDownload.remove();           }   });

第一個參數是要截圖的Dom對象,第二個參數時渲染完成后回調的canvas對象。

Name Type Default Description
allowTaint boolean false Whether to allow cross-origin images to taint the canvas
background string #fff Canvas background color, if none is specified in DOM. Set undefined for transparent
height number null Define the heigt of the canvas in pixels. If null, renders with full height of the window.
letterRendering boolean false Whether to render each letter seperately. Necessary ifletter-spacing is used.
logging boolean false Whether to log events in the console.
proxy string undefined Url to the proxy which is to be used for loading cross-origin images. If left empty, cross-origin images won't be loaded.
taintTest boolean true Whether to test each image if it taints the canvas before drawing them
timeout number 0 Timeout for loading images, in milliseconds. Setting it to 0 will result in no timeout.
width number null Define the width of the canvas in pixels. If null, renders with full width of the window.
useCORS boolean false Whether to attempt to load cross-origin images as CORS served, before reverting back to proxy

問題分析

介紹完使用之后,說說自己使用中遇到的問題,截圖只能截取當前屏幕內的內容。在查看插件源碼,進行調試之后找到了解決方案。下面貼出源碼和修改后的代碼

源碼:

 return renderDocument(node.ownerDocument, options, node.ownerDocument.defaultView.innerWidth, node.ownerDocument.defaultView.innerHeight, index).then(function(canvas) {        if (typeof(options.onrendered) === "function") {            log("options.onrendered is deprecated, html2canvas returns a Promise containing the canvas");            options.onrendered(canvas);        }        return canvas;    });

修改代碼:

   //2016-02-18修改源碼,解決BUG 對于部分不能截屏不能全屏添加自定義寬高的參數以支持    var width = options.width != null ? options.width : node.ownerDocument.defaultView.innerWidth;    var height = options.height != null ? options.height : node.ownerDocument.defaultView.innerHeight;    return renderDocument(node.ownerDocument, options, width, height, index).then(function (canvas) {        if (typeof(options.onrendered) === "function") {            log("options.onrendered is deprecated, html2canvas returns a Promise containing the canvas");            options.onrendered(canvas);        }        return canvas;    });

主要是讓用戶調用時能夠自定義需要截取Dom對象的寬和高,現在調用方式如下

            $("#btn_screen").on("click", function () {                               html2canvas($("#tbl_exception"), {                    height: $("#tbl_exception").outerHeight() + 20,                    onrendered: function (canvas) {                        var url = canvas.toDataURL();                        //以下代碼為下載此圖片功能                        var triggerDownload = $("<a>").attr("href", url).attr("download", getNowFormatDate()+"異常信息.png").appendTo("body");                        triggerDownload[0].click();                        triggerDownload.remove();                    }                });            });

總結

通過前端插件即實現了瀏覽器全屏截圖功能,不得不說H5功能越來越強大,以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情极品视频| 国产精品久久久久久av| 亚洲福利在线播放| 欧美另类极品videosbest最新版本| 91精品久久久久| 夜夜嗨av一区二区三区四区| 国产精品久久久| 欧美精品激情视频| 午夜免费日韩视频| 色哟哟网站入口亚洲精品| 97色伦亚洲国产| 国产成人综合亚洲| 亚洲性69xxxbbb| 91免费视频网站| 国产精品www色诱视频| 午夜精品一区二区三区av| 日韩av综合中文字幕| 国产日韩欧美中文| 国产在线视频2019最新视频| 亚洲精品欧美日韩| 国产丝袜一区视频在线观看| 91久久精品国产91久久| 欧美国产中文字幕| 欧美成人午夜剧场免费观看| 亚洲国产成人在线播放| 国产不卡精品视男人的天堂| 久久97精品久久久久久久不卡| 欧美不卡视频一区发布| 国产99久久精品一区二区| 91中文字幕在线观看| 亚洲网站在线播放| 欧美一区二区视频97| 一区二区av在线| 精品香蕉在线观看视频一| 久久视频在线播放| 97久久伊人激情网| 欧美激情欧美狂野欧美精品| 在线观看视频99| 在线亚洲午夜片av大片| 国产视频欧美视频| 一区二区三区动漫| 亚洲色图在线观看| 日韩成人久久久| 亚洲欧洲日产国码av系列天堂| 91av视频在线免费观看| 欧美亚洲成人精品| 成人网欧美在线视频| 亚洲国产精品yw在线观看| 亚洲色图综合久久| 亚洲第一av网站| 久久精品国产亚洲一区二区| 久久影院免费观看| 最好看的2019的中文字幕视频| 欧美激情视频一区二区三区不卡| 亚洲最大成人免费视频| 亚洲va电影大全| 亚洲天堂影视av| 亚洲精品国产拍免费91在线| 国产精品老牛影院在线观看| 亚洲视频电影图片偷拍一区| 91精品久久久久久久久久久久久| 国产aⅴ夜夜欢一区二区三区| 国产精品久久久久久av福利| 92看片淫黄大片看国产片| 国产日韩欧美在线视频观看| 亚洲97在线观看| 97久久久久久| 国产精品女主播视频| 欧美日韩亚洲精品内裤| 欧美激情极品视频| 九九热最新视频//这里只有精品| 国产欧美 在线欧美| 久久久久久久电影一区| 国模精品视频一区二区| 亚洲国产日韩一区| 九九久久精品一区| 精品中文字幕在线2019| 国产精品日韩在线观看| 成人97在线观看视频| 久久影视电视剧凤归四时歌| 欧美亚洲成人免费| 成人欧美一区二区三区在线湿哒哒| 久久综合伊人77777尤物| 成人激情视频在线观看| 国产成人精品av| 伊人久久久久久久久久久久久| 久久久久北条麻妃免费看| 国产一区二区三区在线| 在线日韩欧美视频| 亚洲一区二区免费在线| 欧美极品少妇xxxxⅹ免费视频| 欧美日韩久久久久| 久久精品视频在线观看| 久久久精品电影| 日韩电影中文字幕在线观看| 亚洲性视频网址| 国产精品稀缺呦系列在线| 2021国产精品视频| 在线观看中文字幕亚洲| 久久久久亚洲精品| 亚洲国产欧美日韩精品| 国产亚洲精品久久久久久777| 欧美疯狂做受xxxx高潮| 亚洲欧美综合另类中字| 狠狠色噜噜狠狠狠狠97| 欧美大片在线免费观看| 国产精品一区二区3区| 成人女保姆的销魂服务| 在线色欧美三级视频| 狠狠躁夜夜躁久久躁别揉| 亚洲新中文字幕| 日韩av免费一区| 日本国产一区二区三区| 亚洲国产成人av在线| 欧美俄罗斯性视频| 日韩av在线免播放器| 欧美成人精品一区二区| 国产精品r级在线| 亚洲色图五月天| 国产成人精品免高潮在线观看| 国产成人精品免高潮在线观看| 精品少妇v888av| 日韩有码在线播放| 成人在线免费观看视视频| 欧美色videos| 欧美日韩国产激情| 日韩欧美精品免费在线| 亚洲第一av网| 亚洲精品免费一区二区三区| 国产91精品最新在线播放| 一本色道久久88亚洲综合88| 成人精品视频99在线观看免费| 亚洲18私人小影院| 亚洲福利视频久久| 黄色精品一区二区| 国产成人啪精品视频免费网| 欧美日韩国产一中文字不卡| 美女久久久久久久久久久| 亚洲色图色老头| 日韩亚洲国产中文字幕| 色黄久久久久久| 日韩av网址在线| 久久久亚洲成人| 国产丝袜精品视频| 亚洲在线第一页| 日韩免费在线播放| 成人黄色av网站| 在线播放日韩专区| 亚洲综合精品一区二区| 亚洲最大的成人网| 欧美亚洲在线视频| 国产精品久久婷婷六月丁香| 亚洲区bt下载| 国产精品欧美久久久| 精品久久久久久国产| www日韩欧美| 91精品国产777在线观看| 久久精品中文字幕一区| 亚洲欧美日韩第一区| 亚洲欧美999| 亚洲成年人在线播放| 欧美激情一级欧美精品| 久久久精品2019中文字幕神马| 久久亚洲国产精品成人av秋霞|