對html進行截圖並儲存為本地圖片

心之所向便是光發表於2018-11-14
<!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,

相關文章