JS ClipboardEvent clipboardData всегда пусто - PullRequest
0 голосов
/ 30 мая 2018

Я хочу получать файлы через CTRL + V из ClipboardEvent в Angular6.Но данные буфера обмена всегда пустые (я тестировал изображения и текст).Я протестировал его в последней версии Chrome / Firefox.

enter image description here

Как видно на скриншоте, атрибут files / items пуст.Это мой текущий код:

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

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

1 Ответ

0 голосов
/ 30 мая 2018

Это может быть невозможно из-за ограничений безопасности и различной поддержки браузера.

Чтобы получить данные о вашем событии, вы должны позвонить getData(format) на clipboardData , передавая требуемый тип MIME (или просто «Текст» для текста).Например,

private pasteEvent(e): void {
  console.log(e.clipboardData.getData("text/plain");
}

, чтобы получить текст.Я не уверен, что вы все равно можете получить файлы.

Current Chrome также поддерживает новый API буфера обмена :

private async pasteEvent(e)  {
  const text = await navigator.clipboard.readText();
  console.log(text);
}

Общий read() метод не являетсяхотя поддерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...