Angular 8 прослушивание события копирования в буфер обмена и получение ранее скопированных данных не работает - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть веб-приложение angular 8, где я слушаю копии и прошедшие события. Моя цель - захватить текст из буфера обмена, который был недавно скопирован, чтобы я мог сохранить его в своем сервисе !! Но я не могу получить его на уровне события копирования, event.clipboardData.getData ('Text') всегда возвращает пустой, несмотря на то, что недавно скопировал некоторый случайный текст 'helloo !!'

Это фрагмент моего код

  selector: '[appInterceptCopyPast]'
})
export class InterceptCopyPastDirective {

  constructor(private customClipBoard: CustomClipboardService) { }

  @HostListener('window:copy', ['$event']) interceptCopy(event: ClipboardEvent) {
    debugger;
    event.preventDefault();
    let previouslyCopiedText = event.clipboardData.getData('Text');
    this.customClipBoard.savePreCopiedText(previouslyCopiedText);
    let textCopied = window.getSelection().toString();
    this.customClipBoard.saveCopiedText(textCopied);
  }

  @HostListener('window:paste', ['$event']) interceptPaste(event: ClipboardEvent) {
    debugger;
    let externalClipboardtext = event.clipboardData.getData('Text');
    this.customClipBoard.updateClipboards(externalClipboardtext);
    let textToPaste = this.customClipBoard.getCopiedText();
    document.execCommand("insertHTML", false, textToPaste);
    event.preventDefault();
  }

функция interceptPaste работает нормально

...