IE 11粘贴仅适用于输入字段

时间:2018-06-04 15:47:04

标签: angular typescript internet-explorer-11 copy-paste

我需要在自定义网格上捕获粘贴事件,但在IE11中,Ctrl + V粘贴事件仅适用于输入字段。我需要它来处理组件并通过Window访问它。在Chrome中,它非常完美。

 public ngOnInit() {
   window.addEventListener('paste', myCustomEvent.bind(this));
}

在Chrome中,当用户在屏幕上的任意位置单击Ctrl + V时会触发

myCustomEvent(event) {    

    // gets data from clipboard and converts it to an array (1 array element for each line)
    let clipboardData = event.clipboardData || event.originalEvent['clipboardData'].getData('text');
    console.log('event' , event);
    console.log(clipboardData);
}

1 个答案:

答案 0 :(得分:1)

为keydown创建一个侦听器事件。当用户按下Ctrl + V时,它将触发您的事件。从那里你可以访问clipBoardData。别忘了将Renderer2导入构造函数

this.global = this.renderer.listen('document', 'keydown', (event) => {
        if (event.ctrlKey === true && event.key === 'v') {
          const clipboardData = window['clipboardData'].getData('Text');
          if (clipboardData) {
            this.ProcessBeforePaste(clipboardData);
          }
        }
      });