js截屏

作者: AdrianRD | 来源:发表于2016-08-04 11:59 被阅读569次

使用Html2canvas截屏


下载Html2canvas

Html2canvas加载后将会浏览页面上的所有元素,集合所有页面元素的信息,然后用户就可以通过Html2canvas把整个页面截图下来。
换句话说,Html2canvas不会实际上的截图,而是通过从DOM读取的足够信息去建立一个页面的展示镜像。
这就会导致Html2canvas只会渲染它认识的正确的DOM元素属性,还有很多CSS属性是不会生效的,也就渲染不出来了。

下面举个简单例子

完整html代码如下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="js/html2canvas.min.js"></script>
    </head>
    <body>
        <div id="box" style="margin: 20px; padding: 10px; background: orange;">
            <li>第1行</li>
            <li>第2行</li>
            <li>第3行</li>
            <li>第4行</li>
        </div>
        
        <script type="text/javascript">
            function AJRD_printDom(id){
                html2canvas(document.getElementById(id), { 
                    allowTaint: true, 
                    taintTest: false, 
                    onrendered: function(canvas) { 
                        canvas.id = "mycanvas"; 
                        var dataUrl = canvas.toDataURL();  //生成base64图片数据 
                        var oPop =   window.open(dataUrl,"","width=1000,   height=500,   top=100,   left=0");   
                    } 
                });
            }
            onload=function(){
                AJRD_printDom('box');
            }
        </script>
    </body>
</html>

看下效果

js截屏

我们可以看到id为box的div被打印成了一张图片

再来看看截屏函数

function AJRD_printDom(id){
    html2canvas(document.getElementById(id), { 
        allowTaint: true, 
        taintTest: false, 
        onrendered: function(canvas) { 
            canvas.id = "mycanvas"; 
            var dataUrl = canvas.toDataURL();  //生成base64图片数据 
            var oPop =   window.open(dataUrl,"","width=1000,   height=500,   top=100,   left=0");   
        } 
    });
}

你会发现这个截屏并不是真正意义上的截屏,输入参数并不是像素宽高,而是一个dom节点。
html2canvas将这个dom节点再次渲染生成一张图片。当拿到图片之后,这里是将它在新窗口中显示出来,你也可以将它保存到任何地方!


相关文章

  • js 截屏

    前端更新实在快,自己感觉呗甩老远,经理告诉我有一个需求,是屏幕截屏,蒙了,js还能实现这功能?然后抱着试试的心态,...

  • js截屏

    使用Html2canvas截屏 下载Html2canvas Html2canvas加载后将会浏览页面上的所有元素,...

  • android 截屏实现

    Android 截屏分为四种:View 截屏、WebView 截屏、系统截屏 和 adb 截屏 1、View 截屏...

  • Android 截屏方式整理

    Android 实现截屏方式整理 可能的需求: 截自己的屏 截所有的屏 带导航栏截屏 不带导航栏截屏 截屏并编辑选...

  • js截屏(日常需求)

    今天遇到一个需求,就是把分享海报通过微信,完整的分享出去,首先这个分享海报是由两部分组成,一个是海报本身,一个是带...

  • Android surfaceView,TextureView、

    TextureView截屏 surfaceView截屏 root 截图

  • iOS 应用内截屏分享

    需求:捕获用户截屏操作,并建议用户截屏后的操作。虽然iOS11 有系统的截屏,但 APP 内截屏可便捷操作。 封装...

  • (最新)iOS截屏

    ios webview 截屏:ios截屏 前言:介绍一下截屏有很多种做法1:截当前屏幕内容2:截整个视图的所有内容...

  • 读袁靖老师关于长城保护的政协提案有感(修订版)

    截屏图片一: 截屏图片二: 截屏图片三: 截屏图片四: 正文: 当看到袁靖老师这一政协提案时,第一印象,这...

  • 如何成为一名有货的新媒体运营者

    图片制作 Snagit:支持滚动截屏 Faststone Capture:滚动截屏、自定义截屏、录制视频制作GIF...

网友评论

    本文标题:js截屏

    本文链接:https://www.haomeiwen.com/subject/waucsttx.html