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

首頁 > 編程 > JavaScript > 正文

JavaScript實現網頁截圖功能

2019-11-20 14:02:25
字體:
來源:轉載
供稿:網友

使用JavaScript截圖,這里我要推薦兩款開源組件:一個是Canvas2Image,它可以將Canvas繪圖編程PNG/JPEG/BMP的圖像;但是光有它還不夠,我們需要給任意DOM(至少是絕大部分)截圖,這就需要html2canvas,它可以將DOM對象轉換成一個canvas對象。兩者的功能結合起來,就可以把頁面上的DOM截圖成PNG或者JPEG圖像了,很酷。

Canvas2Image

它的原理是利用了HTML5的canvas對象提供了toDataURL()的API:

復制代碼 代碼如下:

var strDataURI = oCanvas.toDataURL(); 
// returns "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt..."

這樣的結果是base64編碼的(事實上,image也可以通過這種方式以字符串的形式寫死到頁面上),所以我們還需要一個base64編解碼的lib。

但是目前的缺陷也有不少,比如目前Opera和Safari只支持PNG,FireFox的支持性則好得多。

生成圖片有兩種方式寫入頁面,一種是生成一個圖片對象寫入頁面DOM樹中,這也是支持性比較好的方式:

復制代碼 代碼如下:

// returns an <img> element containing the converted PNG image 
var oImgPNG = Canvas2Image.saveAsPNG(oCanvas, true);

但是如果你做一個JavaScript截圖功能的話,你可能希望截圖后能夠自動打開保存文件的“保存”對話框:

復制代碼 代碼如下:

Canvas2Image.saveAsPNG(oCanvas);
// will prompt the user to save the image as PNG.

這個方式調用會生成一個mimeType為“image/octet-stream”的數據流到瀏覽器,但是“保存”對話框無法識別出圖片適當的后綴名,默認保存的文件在FireFox下是“xxx.part”這種名字,這是令人遺憾的地方,但是似乎沒有什么好辦法解決。

html2canvas

它作用于DOM加載的過程,收集其中的信息,再來繪制canvas圖像,也就是說,其實它并不是將展現的DOM樹截成canvas圖,而是仿照DOM樹重新繪制了一張canvas圖。于是很多CSS樣式都無法被準確識別出來,無法準確反映到圖上。

其它的限制還有不少,比如:

●javascript必須是同域的,對于跨域的情況需要使用代理服務器(API中有參數可以指定),對于image也同樣;
●frame內的DOM樹無法被準確繪制;
●因為要繪制的是canvas圖,所以像IE8這樣的瀏覽器需要使用FlashCanvas這樣的第三方庫。

這個頁面可以測試各個網站使用它來截圖的效果,效果相當不錯:

API使用的例子:

復制代碼 代碼如下:

html2canvas(
    [dom1, dom2],
    {
        logging: false,
        useCORS: false,
        proxy:   false,
        onrendered: function(canvas){
            // canvas 就是繪制的canvas是對象
        }
    }
);

對于這一類相對小眾的類庫,文檔都是很差的,包括API的定義,需要閱讀源碼,代碼上寫得挺清楚的。

另外,該站點下載包里面還有一個JQuery的插件,對這個API做了一個封裝,可以無視。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美在线视频| 久久久久久久电影一区| 欧美丝袜美女中出在线| 欧美成人手机在线| 中文字幕欧美精品日韩中文字幕| 欧美日韩中文字幕| 欧美精品第一页在线播放| 国产精品jvid在线观看蜜臀| 一区二区三区天堂av| 欧美亚洲国产日本| 欧美在线免费视频| 91视频九色网站| 国产精品爱久久久久久久| 久久免费少妇高潮久久精品99| 秋霞av国产精品一区| 国产在线拍揄自揄视频不卡99| 国产精品亚洲欧美导航| 亚洲精品一区久久久久久| 亚洲女同精品视频| 国产精品直播网红| 欧美日韩色婷婷| 2019最新中文字幕| 精品一区二区三区四区在线| 九九久久国产精品| 亚洲自拍偷拍在线| 久久天天躁狠狠躁夜夜躁| 久久男人资源视频| 伊人久久综合97精品| 亚洲国产精品久久久久久| 欧美性猛交xxxx乱大交极品| 91亚洲午夜在线| 久久久在线观看| 国产成人精品电影久久久| 日本成人在线视频网址| 在线观看欧美日韩国产| 国产精品69精品一区二区三区| 欧美另类第一页| 成人伊人精品色xxxx视频| 欧美亚洲视频在线看网址| 久久久精品国产| 亚洲黄色在线看| 欧美在线视频播放| 亚洲日本中文字幕免费在线不卡| 欧美国产日韩一区二区三区| 日韩av免费在线看| 欧美日韩亚洲一区二区| 97国产精品人人爽人人做| 欧美激情亚洲视频| 国语自产精品视频在免费| 91在线观看免费高清| 国产69精品99久久久久久宅男| 亚洲精品一区在线观看香蕉| 国产一区私人高清影院| 国产人妖伪娘一区91| 91精品在线一区| 欧美日韩国产丝袜美女| 狠狠色狠狠色综合日日小说| 日本精品视频在线观看| 欧美日韩国产精品专区| 国产精品久久久久免费a∨大胸| 亚洲自拍偷拍在线| 日韩电影中文字幕在线观看| 俺也去精品视频在线观看| 中文字幕日韩欧美在线视频| 国产精品视频一区二区高潮| 成人网在线视频| 成人黄色免费片| 亚洲国产精品资源| 在线日韩精品视频| 欧美成人午夜免费视在线看片| 57pao成人永久免费视频| 国产日产亚洲精品| 日韩av在线不卡| 亚洲美女精品久久| 中文字幕av一区二区三区谷原希美| 精品国产999| 国产精品麻豆va在线播放| 国产日韩换脸av一区在线观看| 国产欧美日韩视频| 一区二区在线视频播放| 在线电影av不卡网址| 国产亚洲视频在线| 成人国产在线激情| 自拍亚洲一区欧美另类| 色噜噜狠狠狠综合曰曰曰| 91九色国产社区在线观看| 中文字幕亚洲综合久久筱田步美| 久久免费精品日本久久中文字幕| 97色在线观看免费视频| 国产精品91久久| 欧美亚洲另类视频| 日韩视频免费在线| 亚洲一区二区国产| 日韩人在线观看| 精品久久久在线观看| 91天堂在线视频| 激情久久av一区av二区av三区| 日韩欧美有码在线| 国产精品视频区1| xxx一区二区| 97国产在线观看| 日韩极品精品视频免费观看| 福利一区福利二区微拍刺激| 国产欧美一区二区三区久久人妖| 亚洲第一区第二区| 日韩视频第一页| 亚洲影视中文字幕| 国产女精品视频网站免费| 精品视频在线导航| 亚洲a级在线播放观看| 日韩电影在线观看免费| 亚洲美腿欧美激情另类| 国产精品一久久香蕉国产线看观看| 亚洲国产天堂久久国产91| 欧美成人免费一级人片100| 中文字幕九色91在线| 黄色成人在线免费| 亚洲天堂网站在线观看视频| 日韩av高清不卡| 国产精品2018| 欧美综合一区第一页| www.久久久久| 亚洲综合最新在线| 精品亚洲男同gayvideo网站| 欧美丝袜美女中出在线| 国产精品99蜜臀久久不卡二区| 亚洲精品一区久久久久久| 日韩中文字幕精品视频| 2024亚洲男人天堂| 国产精品久久久久久超碰| 精品亚洲va在线va天堂资源站| 日韩高清不卡av| 琪琪第一精品导航| 国产欧美在线播放| 羞羞色国产精品| 日韩视频―中文字幕| 久久亚洲综合国产精品99麻豆精品福利| 亚洲国产高清高潮精品美女| 亚洲欧美999| 亚洲精品电影在线| 国产成人精品视频在线观看| 成人精品在线观看| 九九热视频这里只有精品| 夜夜躁日日躁狠狠久久88av| 久久视频在线观看免费| 精品国产欧美一区二区五十路| 91系列在线观看| 国产精品一区二区女厕厕| 欧美专区在线观看| 8090成年在线看片午夜| 欧亚精品中文字幕| 日韩经典中文字幕| 亚洲精品久久久久久久久久久久| 国产精品视频在线观看| 国产美女91呻吟求| 一本色道久久88综合亚洲精品ⅰ| 国产精品一区二区女厕厕| 亚洲一级一级97网| 国产精品久久999| 亚洲国语精品自产拍在线观看| 国产精品成人久久久久| 在线观看亚洲视频| 久久久999成人| 午夜精品三级视频福利|