• js实现获得QQ截图或者微信截图后剪切板的内容clipboardData


    最近项目需求是获得QQ截图或者微信截图,直接粘贴文本框内并发送

    开发中使用paste事件,一直显示clipboardData的items内容为空,一直以为获得不到里面的,后来才发现items是一个伪数组,直接使用下面的方法就可以了

    输入框中要实现粘贴图片功能,不能用input、textarea等输入框作为父容器,因为input、textarea中只能接受字符串,对于html标签不进行转义以及渲染。

    所以用contenteditable='true'属性来使div(其他容器也可)实现可编辑,来模拟输入框,实现粘贴图片至输入框中的效果

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
             <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <title></title>
            <link rel="stylesheet" href="">
            <style type="text/css" media="screen">
                div{
                    width:100%;
                    height:200px;
                    background:#ccc;
                    margin:10px auto;
                    text-align:center;
                }
            </style>
        </head>
        <body>
            this is app-static.acc5.com/test/index.html 
            <div contenteditable="true"></div>
            <div contenteditable="true"></div>
            <div><img id="myimg" ></div>
        </body>
        <script type="text/javascript">
            //绑定粘贴事件 Ctrl+V
            bindPaste();
            //绑定粘贴事件
            function bindPaste(){
                //定义变量存储获取的图片内容
                var blob;
                //获取body对象
                var body = document.getElementsByTagName("body")[0];
                //定义body标签绑定的粘贴事件处理函数
                var fun=function(e){
                    //获取clipboardData对象
                    var data=e.clipboardData||window.clipboardData;
                    console.log('fun',data);
                    //获取图片内容
                    blob=data.items[0].getAsFile();
                    //判断是不是图片,最好通过文件类型判断
                    var isImg=(blob&&1)||-1;
                    var reader=new FileReader();
                    if(isImg>=0){
                        //将文件读取为 DataURL
                        reader.readAsDataURL(blob);
                    }
                    //文件读取完成时触发
                    reader.onload=function(event){
                        //获取base64流
                        var base64_str=event.target.result;
                        //div中的img标签src属性赋值,可以直接展示图片
                        console.log('base64_str',base64_str);
                        document.getElementById('myimg').src=base64_str;
                    }
                }
                //通过body标签绑定粘贴事件,注意有些标签绑定粘贴事件可能出错
                body.removeEventListener('paste',fun);
                body.addEventListener('paste',fun);
            }
        </script>
    </html>
  • 相关阅读:
    python字典
    python中List添加、删除元素的几种方法
    python数据处理之基本函数
    python批量处理
    python正则表达式
    python模块学习:os模块
    Hough transform(霍夫变换)
    MODBUS TCP/IP协议规范详细介绍
    Linux下run文件的直接运行
    双边滤波和引导滤波的原理
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/14178423.html
Copyright © 2020-2023  润新知