可以在粘贴事件中检测剪贴板数据,但在剪切或复制事件中不能检测

时间:2019-09-16 18:42:47

标签: html angular

在我的Angular应用中,我试图检测用户从文本输入中剪切了什么。我能够在粘贴事件中检测到剪贴板数据,但是剪切复制事件未显示剪贴板数据。有没有其他方法可以检查剪切和复制事件?

HTML:

<input [(ngModel)]='code' #codeInput="ngModel" 
    (copy)=clipboardEvent($event) 
    (cut)=clipboardEvent($event) 
    (paste)=clipboardEvent($event)>

TS:

    clipboardEvent(event: ClipboardEvent){        
        let clipboardData = event.clipboardData;
        let clipboardText = clipboardData.getData('text');
        console.log('clipboard text: ', clipboardText);
    }

演示: https://stackblitz.com/edit/angular-clipboard-data

1 个答案:

答案 0 :(得分:0)

剪切/复制和粘贴必须使用其他方法。剪切/复制而不是事件的参考窗口:

TS:

    pasteEvent(event: ClipboardEvent){  
        let clipboardText = event.clipboardData.getData('text');        
        console.log(clipboardText);
    }
    cutCopyEvent(){  
        let clipboardText = window.getSelection().toString();        
        console.log(clipboardText);
    }

演示(固定):https://stackblitz.com/edit/angular-clipboard-data-rvphn8