<!DOCTYPE html> <html lang="en"> <head> <meta name="layout" content="main"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> #canvs { background-color: yellow; width: 400px; margin: 100px auto; text-align: center; padding: 10px; } .title { font-size: 18px; } </style> <script type="text/javascript" src="http://www.boolaw.com/tpl/default/js/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="js/html2canvas.js"></script> <script type="text/javascript"> function downloadForJS() { //使用html2canvas 轉換html爲canvas html2canvas(document.getElementById('canvs')).then(function (canvas) { var imgUri = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); // 獲取生成的圖片的url var saveLink = document.createElement('a'); saveLink.href = imgUri; saveLink.download = 'downLoad.png'; saveLink.click(); }); } </script> </head> <body> <div id="canvs"> <div class="title">如夢令·昨夜雨疏風驟</div> <div>[宋] 李清照</div> <div>昨夜雨疏風驟,濃睡不消殘酒,試問卷簾人,卻道海棠依舊。</div> <div>知否,知否,應是綠肥紅瘦。</div> </div> <div style="width: 400px;margin:50px auto;"> <input class="button" type="button" value="button" onclick="downloadForJS()">測試</input> </div> </body> </html>
2.若是存在滾動條,怎麼把滾動條裏面的內容也截取下來javascript
downloadForJS() { var targetDom = this.common.getClass('div', 'rightBox')[0] var copyDom = targetDom.cloneNode(true) // 克隆節點 copyDom.style.width = targetDom.offsetWidth + 'px' copyDom.style.height = targetDom.scrollHeight + 'PX' // 得到高度 document.getElementsByClassName('wrapperRight')[0].appendChild(copyDom) // 插入節點 html2canvas(copyDom).then((canvas) => { document.getElementsByClassName('wrapperRight')[0].removeChild(copyDom) // 刪除節點 var imgUri = canvas.toDataURL('image/png').replace('image/png', 'image/octet-stream') // 獲取生成的圖片的url var saveLink = document.createElement('a') saveLink.href = imgUri saveLink.download = 'downLoad.png' saveLink.click() }) }