利用js的clipboardData api 实现粘贴剪切板图片的效果(如:QQ截图)

17-07-25 19:38 字数 690 阅读 4969 已编辑
<!DOCTYPE HTML>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>利用js的clipboardData api 实现粘贴剪切板图片的效果(如:QQ截图)</title>  
</head>  
<body>  
<h3>利用 clipboardData 在网页中实现截屏粘贴的功能</h3>  
<div><input type="text" id="testInput" placeholder="截屏后粘贴到输入框中" size="30" /></div>  
<script type="text/javascript">  
    (function(){  
        var imgReader = function( item ){  
            var blob = item.getAsFile(),  
                reader = new FileReader();  

            reader.onload = function( e ){  
                var img = new Image();  

                img.src = e.target.result;  
                document.body.appendChild( img );  
            };  

            reader.readAsDataURL( blob );  
        };  
        document.getElementById( 'testInput' ).addEventListener( 'paste', function( e ){  
            var clipboardData = e.clipboardData,  
                i = 0,  
                items, item, types;  

            if( clipboardData ){  
                items = clipboardData.items;  

                if( !items ){  
                    return;  
                }  

                item = items[0];  
                types = clipboardData.types || [];  

                for( ; i < types.length; i++ ){  
                    if( types[i] === 'Files' ){  
                        item = items[i];  
                        break;  
                    }  
                }  

                if( item && item.kind === 'file' && item.type.match(/^image//i) ){  
                    imgReader( item );  
                }  
            }  
        });  
    })();  
</script>  

</body>  
</html>  

仅支持Chrome系列浏览器

0人点赞>
关注 收藏 改进 举报
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论
站长 @ 十七度
文章
380
粉丝
23
喜欢
191
收藏
31
排名 : 1
访问 : 130.11万
私信