zoukankan      html  css  js  c++  java
  • 对html进行截图并保存为本地图片

    <!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=" 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,

  • 相关阅读:
    蓝桥杯训练 2n皇后问题
    AtCoder Grand Contest #026 B
    AtCoder Grand Contest #026 A
    AtCoder Beginner Contest 103
    7-26 单词长度(15 分)
    uva 10006 Carmichael Numbers
    java并发带返回结果的批量任务执行(CompletionService:Executor + BlockingQueue)
    并发容器之CopyOnWriteArrayList
    模板模式
    静态工具类中使用注解注入service
  • 原文地址:https://www.cnblogs.com/zsz179248496/p/9956571.html
Copyright © 2011-2022 走看看