当我尝试对Chrome中的paste
事件做出反应时,我有一种非常奇怪的行为,以便让用户将多个文件从文件系统粘贴到我的网络前端。
这是我注册到paste
事件的函数的代码:
let pasteFunction = function(event, callback) {
event.preventDefault();
if (!event.originalEvent && !event) {
return;
}
let regardedEvent = (event.originalEvent || event)
let items = regardedEvent.clipboardData.items;
if(items === undefined){
return;
};
Array.prototype.forEach.call(regardedEvent.clipboardData.files, function(file) {
callback(file);
});
}
我没有迭代files
属性,而是尝试了这个:
for (var i = 0; i < items.length; i++) {
let content = items[i]
if (content.kind !== 'file') continue;
var blob = content.getAsFile();
if (blob === null) {
continue;
}
callback(blob);
}
这种方法存在多个问题:
image.png
)当我在Safari中尝试时,一切都像魅力一样。是否意味着Chrome的安全政策禁止我按预期使用剪贴板API?或者我能做点什么呢?
MacOS Sierra(10.12.6) - Chrome 65.0.3325.181