Javascript 如何接收鼠标剪切/粘贴的InputEvent

Javascript 如何接收鼠标剪切/粘贴的InputEvent,javascript,Javascript,我有一个JavaScript函数,当文本区域从键盘接收输入时触发 让messageAttachmentSelector=document.querySelector'action-attachment-selector'; 让messageInput=document.querySelector'action-input'; 让messageSendButton=document.querySelector'action-send'; messageInput.addEventListener

我有一个JavaScript函数,当文本区域从键盘接收输入时触发

让messageAttachmentSelector=document.querySelector'action-attachment-selector'; 让messageInput=document.querySelector'action-input'; 让messageSendButton=document.querySelector'action-send'; messageInput.addEventListener'input',事件=>{ 如果messageInput.value.length>0{ messageAttachmentSelector.classList.addhidden; }否则{ messageAttachmentSelector.classList.removehidden; }
}; 之所以会发生这种情况,是因为更改字段的value属性不被视为输入,因此不会触发事件

有很多方法可以解决这个问题。一种是在以编程方式更改值时触发本机事件

let i = document.querySelector('input');
i.addEventListener('input', evt => evt.target.value += '!');
let evt = new Event('input');
i.value = 'foo';
i.dispatchEvent(evt);

或者,类似但不模拟事件,您可以将事件回调设置为非匿名,以便手动调用它

let callback;
i.addEventListener('input', callback = () => i.value += '!');
i.value = 'foo';
callback();

.

“但是当使用JavaScript更改消息输入值时,代码不会触发”-后者没有事件。如果您需要对此作出反应,那么理想情况下,您可以在值已经更改的位置执行。我感谢您的反馈,但我仍在寻找解决方案。我已将InputEvent发送到JS更改输入的位置,谢谢