从浏览器剪切板中读取图片并显示--for chrome

利用chrome的clipboardData和File Reader对象,可以很好的实现些功能。

function test(evt){
    //for chrome
    var clipboardData = evt.clipboardData;
    for(var i=0; i<clipboardData.items.length; i++){
        var item = clipboardData.items[i];
        if(item.kind=='file'&&item.type.match(/^image\//i)){
            //blob就是剪贴板中的二进制图片数据
            var blob = item.getAsFile(),reader = new FileReader();
            //定义fileReader读取完数据后的回调
            reader.onload=function(){
                var sHtml='<img src="'+event.target.result+'">';//result应该是base64编码后的图片
                document.getElementById('dd').innerHTML += sHtml;
            }
            reader.readAsDataURL(blob);//用fileReader读取二进制图片,完成后会调用上面定义的回调函数
        }
    }
}

<textarea id="t" onpaste="test(event)" cols=60 rows=5></textarea>
<div id="dd"></div


你可能感兴趣的:(从浏览器剪切板中读取图片并显示--for chrome)