我想通过Angular6中的ClipboardEvent通过CTRL + V接收文件。 但是clipboardData总是空的(我测试了图像和文本)。 我在最新的Chrome / Firefox版本上进行了测试。
正如您在屏幕截图中看到的,files / items属性为空。 这是我目前的代码:
ngOnInit() {
document.addEventListener('paste', this.pasteEvent);
}
private pasteEvent(e): void {
console.log(e);
}
答案 0 :(得分:1)
由于安全限制和不同的浏览器支持,可能无法实现。
要从您的活动中获取数据,您必须在clipboardData上致电getData(format)
,然后传递所需的MIME类型(或只是文本'文字)。 E.g。
private pasteEvent(e): void {
console.log(e.clipboardData.getData("text/plain");
}
获取文字。我不确定你是否可以获得文件。
目前的Chrome还支持新的Clipboard API:
private async pasteEvent(e) {
const text = await navigator.clipboard.readText();
console.log(text);
}
但不支持通用read()
方法。