JS ClipboardEvent clipboardData始终为空

时间:2018-05-30 13:44:00

标签: javascript angular typescript angular6

我想通过Angular6中的ClipboardEvent通过CTRL + V接收文件。 但是clipboardData总是空的(我测试了图像和文本)。 我在最新的Chrome / Firefox版本上进行了测试。

enter image description here

正如您在屏幕截图中看到的,files / items属性为空。 这是我目前的代码:

  ngOnInit() {
    document.addEventListener('paste', this.pasteEvent);
  }

  private pasteEvent(e): void {
    console.log(e);
  }

1 个答案:

答案 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()方法。