IE11中未定义ClipboardEvent

use*_*686 7 events internet-explorer-11 angular

我的Angular指令之一中包含以下代码:

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

它在IE11中失败,并显示错误消息ClipboardEvent is undefined。幸运的是,我可以将其键入到just Event,但是我想知道为什么它会中断-我可以在angular-cli.json中添加任何可使其使用的库ClipboardEvent吗?

"lib": [
  "es2017",
  "dom"
],
Run Code Online (Sandbox Code Playgroud)

“ dom”是Event从哪里来的...

小智 2

像这样使用

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

剪贴板事件仍处于实验技术阶段。这会起作用。