我花了一些时间来试验这个.它似乎有点像新的Clipboard API spec.您可以定义"粘贴"事件处理程序并查看事件.剪贴簿数据.并对其调用getAsFile()以获取Blob.一旦你有了一个斑点,你可以用FileReader来看看里面有什么.这就是你如何为你刚刚粘贴在Chrome上的东西获取数据url的方法:
document.onpaste = function (event) {
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
console.log(JSON.stringify(items)); // might give you mime types
for (var index in items) {
var item = items[index];
if (item.kind === 'file') {
var blob = item.getAsFile();
var reader = new FileReader();
reader.onload = function (event) {
console.log(event.target.result); // data url!
};
reader.readAsDataURL(blob);
}
}
};
一旦有了数据url,就可以在页面上显示图像.如果您想上传它,可以使用readAsBinaryString,或者使用FormData将其放入XHR.
编辑:请注意,该项目的类型为DataTransferItem.JSON.stringify
可能在项列表上不起作用,但是当您循环遍历项时,您应该能够获得MIME类型.