<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>html2canvas_download</title> <style> a { cursor: pointer; color: rgb(85, 26, 139); text-decoration: underline; } </style> </head> <body> <div id="oDiv" style="width: 300px; height: 300px; margin: 10px; background: red; border: 5px solid gray;"> <h1>hello world!</h1> </div> <!-- <script type="text/javascript" src="../dist/html2canvas.js"></script> --> <script src="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.min.js"></script> <script type="text/javascript"> var oDiv = document.getElementById(`oDiv`); // body截圖 // html2canvas(document.body).then(function(canvas) { // document.body.appendChild(canvas); // }); html2canvas(oDiv).then(function(canvas) { document.body.appendChild(canvas); var oCavans = document.getElementsByTagName(`canvas`)[0]; var strDataURI = oCavans.toDataURL(); downLoadFn(strDataURI); }); //判斷瀏覽器型別 function myBrowser() { var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字串 var isOpera = userAgent.indexOf("Opera") > -1; if(isOpera) { return "Opera" }; //判斷是否Opera瀏覽器 if(userAgent.indexOf("Firefox") > -1) { return "FF"; } //判斷是否Firefox瀏覽器 if(userAgent.indexOf("Chrome") > -1) { return "Chrome"; } if(userAgent.indexOf("Safari") > -1) { return "Safari"; } //判斷是否Safari瀏覽器 if(userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) { return "IE"; }; //判斷是否IE瀏覽器 if(userAgent.indexOf("Trident") > -1) { return "Edge"; } //判斷是否Edge瀏覽器 } //IE瀏覽器圖片儲存本地 function SaveAs5(imgURL) { var oPop = window.open(imgURL, "", "width=1, height=1, top=5000, left=5000"); for(; oPop.document.readyState != "complete";) { if(oPop.document.readyState == "complete") break; } oPop.document.execCommand("SaveAs"); oPop.close(); } // chrome14+,firefox20+,pera15+,Edge 13+,Safari未實現 function download(strDataURI) { var link = document.createElement(`a`); link.innerHTML = `download_canvas_image`; link.download = `mypainting.png`; link.addEventListener(`click`, function(ev) { link.href = strDataURI; }, false); document.body.appendChild(link); }; function downLoadFn(url) { if(myBrowser() === "IE" || myBrowser() === "Edge") { SaveAs5(url); } else { download(url); } } </script> </body> </html>
參考:http://blog.csdn.net/luckyJieXu/article/details/72137147,https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasElement/toDataURL,