我的角度指令中有以下代码:

  @HostListener('paste', ['$event'])
  onPaste($event: ClipboardEvent) {
    setTimeout(() => {
      const input = (<HTMLInputElement>$event.target);
      input.value = input.value.replace(/\D/g, '');
    });
  }

它在ie11中失败了,错误是ClipboardEvent is undefined
幸运的是我可以把它打到Event,但我想知道它为什么会坏-
我是否可以在angular-cli.json中添加任何lib以使其与ClipboardEvent一起工作?
"lib": [
  "es2017",
  "dom"
],

“dom”是Event的来源…

最佳答案

像这样使用

@HostListener('paste', ['$event'])
  onPaste($event) {
    var clipboardData;
    if (window['clipboardData']) { // IE
       clipboardData = window['clipboardData'];
    } else if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.getData) { // other browsers
       clipboardData = e.originalEvent.clipboardData; }
    }}

剪贴板事件仍在实验技术中。这会奏效的。

08-15 20:24