js截取html或div生成base64圖片編碼

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta name="layout" content="main">

? ? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

? ? <script type="text/javascript" src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>

? ? <script type="text/javascript" src="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.min.js"></script>

? ? <script? type="text/javascript" >

? ? ? ? $(document).ready( function(){

? ? ? ? ? ? $(".example1").on("click", function(event) {

? ? ? ? ? ? ? ? // var showObject = $("#showImages");

? ? ? ? ? ? ? ? event.preventDefault();

? ? ? ? ? ? ? ? html2canvas($("#showImages2"), {

? ? ? ? ? ? ? ? ? ? allowTaint: true,

? ? ? ? ? ? ? ? ? ? taintTest: false,

? ? ? ? ? ? ? ? ? ? onrendered: function(canvas) {

? ? ? ? ? ? ? ? ? ? ? ? debugger;

? ? ? ? ? ? ? ? ? ? ? ? canvas.id = "mycanvas";

? ? ? ? ? ? ? ? ? ? ? ? //document.body.appendChild(canvas);

? ? ? ? ? ? ? ? ? ? ? ? //生成base64圖片數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? ? ? var dataUrl = canvas.toDataURL();

? ? ? ? ? ? ? ? ? ? ? ? var newImg = document.createElement("img");

? ? ? ? ? ? ? ? ? ? ? ? newImg.src =? dataUrl;

? ? ? ? ? ? ? ? ? ? ? ? // document.getElementById("showImages");

? ? ? ? ? ? ? ? ? ? ? ? $(".showImagesID").append(newImg);

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? });

? ? ? ? ? ? });

? ? ? ? });

? ? </script>

</head>

<body>

Hello!

<div class="" style="background-color: #abc;">

? ? 計(jì)算機(jī)天堂測(cè)試html5頁(yè)面截圖

? ? <br>jsjtt.com

</div>

<div id="showImages" style="background-color: #eabb00;width: 200px;height: 200px;">

? <span style="color: #0000cc;size: A3">顯示樣式sdsdfdsf</span>

</div>

<div id="showImages2" style="background-color: #ea93db;width: 200px;height: 200px;">

? ? <span style="color: #ff669c;size: A3">鞏師傅師傅說</span>

</div>

<textArea id="textArea" col="20" rows="10" ></textArea>

<input class="example1" type="button" value="button">

生成界面如下:

<div class="showImagesID"></div>

</body>

</html>


實(shí)例代碼含有解決截圖不全問題:

function expWordZip(event){

? ? // var showObject = $("#showImages");

? ? event.preventDefault();

? ? //$(".orgchart l2r")

? ? //document.getElementsByClassName("claro")

? ? //document.getElementById("chart-container")

? ? //獲取節(jié)點(diǎn)高度历极,后面為克隆節(jié)點(diǎn)設(shè)置高度秦叛。

? ? //? ? var imaNode = $("#chart-container");


? ? //獲取當(dāng)前頁(yè)面iframe中要渲染的最好節(jié)點(diǎn)div

? ? var imaNode = window.top.document.getElementById(iframeNodeId).contentWindow.document.getElementById(imagePicId);


? ? //獲取圖像有實(shí)際高度的節(jié)點(diǎn)div目的是獲取所渲染圖像的真實(shí)高度

? ? var imaDom = window.top.document.getElementById(iframeNodeId).contentWindow.document.getElementsByClassName(imageDomClassName);


? ? //js對(duì)象轉(zhuǎn)換成jquery對(duì)象如下偎蘸,為的是使用jquery方法丹擎,jquery對(duì)象轉(zhuǎn)換成js對(duì)象是 js對(duì)象:jsDom = jqueryDom[0]

? ? var imaDomJs = $(imaDom);

? ? var imageNodeJs = $(imaNode);

? ? var imageNodeJsHeight =? imageNodeJs.height();

? ? var imageNodeJsWidth = imageNodeJs.width();

? ? //克隆節(jié)點(diǎn),默認(rèn)為false甚亭,不復(fù)制方法屬性弓候,為true是全部復(fù)制。

? ? var copyDom = imageNodeJs.clone(true);

? ? //設(shè)置克隆節(jié)點(diǎn)的css屬性藏斩,因?yàn)橹暗膶蛹?jí)為0躏结,我們只需要比被克隆的節(jié)點(diǎn)層級(jí)低即可。

? ? //copyDom.width(imageNodeJs.width() + "px");


? ? //設(shè)置渲染圖像的真實(shí)高度狰域,不適用復(fù)制直接改變?cè)氐母叨?/p>


? ? copyDom.width(imaDomJs.outerHeight(true) + "px");

? ? copyDom.height(imaDomJs.outerWidth(true) + "px");

? ? copyDom.css({"background": "white"});

? ? //將克隆節(jié)點(diǎn)動(dòng)態(tài)追加到body后面媳拴。

? ? $("body").append(copyDom);

? ? html2canvas(copyDom, {

? ? ? ? allowTaint: true,

? ? ? ? taintTest: false,

? ? ? ? onrendered: function(canvas) {

? ? ? ? ? ? canvas.id = "mycanvas";

? ? ? ? ? ? //生成base64圖片數(shù)據(jù)

? ? ? ? ? ? var dataUrl = canvas.toDataURL();

? ? ? ? ? ? //var newImg = document.createElement("img");

? ? ? ? ? ? //newImg.src =? dataUrl;

? ? ? ? ? ? // document.getElementById("showImages");

? ? ? ? ? ? //document.body.appendChild(newImg);

? ? ? ? ? ? copyDom.remove();

? ? ? ? ? ? if(dataUrl){

? ? ? ? ? ? ? ? $.ajax(

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? type : "post",

? ? ? ? ? ? ? ? ? ? ? ? ? ? url : ctx+fileDisposeUrl,

? ? ? ? ? ? ? ? ? ? ? ? ? ? data: {"ajbh":ajbh,"imageCode":dataUrl},

? ? ? ? ? ? ? ? ? ? ? ? ? ? success : function (result){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var resultData = JSON.parse(result);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //alert(resultData.msg);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var address = resultData.address;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var fileWordName = resultData.fileWordName;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var url = ctx+fileDownloadUrl+fileWordName;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var method = "post";

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? downWordFile(url, method, address, fileWordName);

? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? });

? ? ? ? ? ? }

? ? ? ? }

? ? });


}

function downWordFile(url, method, address, fileWordName){

? ? debugger;

? ? $('<form action="'+url+'" method="'+(method||'post')+'">' +? // action請(qǐng)求路徑及推送方法

? ? ? ? ? ? ? ? '<input type="hidden" name="address" value="'+address+'"/>' + // 文件路徑

? ? ? ? ? ? ? ? '<input type="hidden" name="fileWordName" value="'+fileWordName+'"/>' + // 文件名稱

? ? ? ? ? ? '</form>').appendTo($("body")).submit().remove();


}

克隆后設(shè)置屬性恢復(fù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市兆览,隨后出現(xiàn)的幾起案子屈溉,更是在濱河造成了極大的恐慌,老刑警劉巖抬探,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件子巾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡小压,警方通過查閱死者的電腦和手機(jī)线梗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怠益,“玉大人仪搔,你說我怎么就攤上這事◎呃危” “怎么了烤咧?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)抢呆。 經(jīng)常有香客問我煮嫌,道長(zhǎng),這世上最難降的妖魔是什么抱虐? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任昌阿,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宝泵。我一直安慰自己,他們只是感情好轩娶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布儿奶。 她就那樣靜靜地躺著,像睡著了一般鳄抒。 火紅的嫁衣襯著肌膚如雪闯捎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天许溅,我揣著相機(jī)與錄音瓤鼻,去河邊找鬼。 笑死贤重,一個(gè)胖子當(dāng)著我的面吹牛茬祷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播并蝗,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼祭犯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了滚停?” 一聲冷哼從身側(cè)響起沃粗,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎键畴,沒想到半個(gè)月后最盅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡起惕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年涡贱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惹想。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盼产,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出勺馆,到底是詐尸還是另有隱情戏售,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布草穆,位于F島的核電站灌灾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏悲柱。R本人自食惡果不足惜锋喜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘿般,春花似錦段标、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至瞻赶,卻和暖如春赛糟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背砸逊。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工璧南, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人师逸。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓司倚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親篓像。 傳聞我的和親對(duì)象是個(gè)殘疾皇子对湃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353