js处理粘贴板内容

e是粘贴事件

var data=e.clipboardData||window.clipboardData;
var len = data.items.length;
var itemType = data.items[0].type;
var kind = data.items[0].kind;

var text = data.getData('text');


1.粘贴的是文字
data.items  长度为1
data.items[0].kind  值为'string'
data.items[0].type  值为'text/plain'
data.getData('text') 值为文字内容
2.粘贴的是截图
data.items  长度为1
data.items[0].kind  值为'file'
data.items[0].type  值为'image/png|*'
data.getData('text') 值为空
3.粘贴的是从文件夹中复制来的文件
data.items  长度为2
data.items[0].kind  值为'string'
data.items[0].type  值为'text/plain',内容是文件名
data.items[1].kind  值为'file'
data.items[0].type  值为'image/png|*',奇怪的是试验中任何类型的文件都显示image
data.getData('text') 值为文件名

看一下我们最终的实现:

if (data.items.length==1) {
    var item = data.items[0];
    var itemType = item.type;
    var kind = item.kind;
    // ele[i].kind == 'file' && ele[i].type.indexOf('image/') !== -1
    if (kind == 'file' && itemType.indexOf('image/')!==-1) {
        console.log('这是截图')
        var blob = item.getAsFile();
        console.log(blob);

        var reader=new FileReader();
        reader.readAsDataURL(blob);

        //文件读取完成时触发
        reader.onload=function(event){
            //获取base64流
            var base64_str=event.target.result;
            //div中的img标签src属性赋值,可以直接展示图片
            $("#imageview").attr("src",base64_str);
            //显示div
            $("#imageview").css("display","block");
            //隐藏输入文字的div
            $("#imageview").next().css("display","none");
        }

    };

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容