javascript - 设置或替换 Facebook 聊天中的 textContent

标签 javascript facebook google-chrome-extension reactjs

我正在开发一个 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/

相关文章:

javascript - chrome.storage.sync.get 未返回完整的 JS 对象

javascript - 如何让联系我们提交按钮发送电子邮件到我的电子邮件?

php - 通过 facebook api 将封面上传到事件会引发异常

javascript - 避免回调并嵌套 if 语句

java - 带有 restfb 的 Facebook 扩展 token

php - Facebook 应用程序成功发布到页面,但非开发人员看不到帖子。我真的必须审查只有 1 个用户的应用程序吗?

javascript - Chrome 扩展和 Django : Verify whether third party cookies are allowed

javascript - Chrome 扩展 js : Sharing functions between background. js 和 popup.js

javascript - 如何使用 RequireJS 加载 Handlebars 运行时

javascript - Asp.Net Repeater - 通过 Javascript 调用 ItemCommand 事件