首页 > 解决方案 > Renderer2 粘贴事件未在 IE11 中触发

问题描述

我正在使用 IE11 和 Angular 4,试图收听粘贴事件。当用户选择 Ctrl + V 时,我想尝试将文本放入文本区域,但监听事件永远不会触发。

我的html:

<textarea #textArea>{{text}}</textarea>

我的打字稿:

 public text: string = '';
 @ViewChild('textArea', { read: ElementRef }) testElement: ElementRef;

    ngAfterViewInit() {
       this.isIEOrEdge = /msie\s|trident\/|edge\//i.test(window.navigator.userAgent);
        if (this.isIEOrEdge) {
          console.log('Element' , this.testElement.nativeElement);
          this.renderer.listen(this.testElement.nativeElement, 'paste', () => {
            console.log('pasting');
            this.InsertNewRowsBeforePaste.bind(this);
        });
        }
      }

    InsertNewRowsBeforePaste(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');
        if (!clipboardData) {
          clipboardData = window['clipboardData'].getData('Text');
        }
        this.text = clipboardData;
    }

标签: javascriptangulartypescript

解决方案


推荐阅读