我正在开发一个 Chrome 扩展程序,它允许用户在发送之前替换他们的 Facebook 聊天消息的文本。
例如,如果用户输入“你好”,我想让他们用“你好”替换聊天输入字段em>,并让用户发送更改后的消息。
问题 是我可以通过编辑输入的 textContent
属性来更改文本,但聊天小部件可能不知道更改因为没有触发正确的事件,所以当我按 Enter 键发送更改后的消息时,什么也没有发生。此外,我无法使用鼠标或键盘删除更改的文本。
我试过模拟键盘输入,但没有成功。我愿意接受涉及该问题的可行解决方案。
我的问题是,如何替换聊天输入字段中的文本以便聊天小部件检测并接受它?
注意:我没有使用 jQuery,所以我更喜欢不使用它的解决方案。
最佳答案
在这上面花了太多时间后,我终于弄明白了,向可编辑元素发送一个 textInput
事件可以改变它的文本,并且会触发所有 React.js 事件。
var setText = function(el, text) {
var te = document.createEvent('TextEvent');
te.initTextEvent('textInput', true, true, window, text);
el.dispatchEvent(te);
}
我之前曾尝试过类似的方法,但我发送的是 input
事件,这显然在 WebKit 和 Chrome 中不起作用。
感谢所有参与和提供帮助的人!
关于javascript - 设置或替换 Facebook 聊天中的 textContent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35368880/