0

我正在构建一个 Chrome 扩展来纠正用户的输入。更正后,在输入字段中更改了更正的单词。该代码目前适用于 textareas 和 contenteditables,但我遇到了 Draft.js 的问题,例如 Facebook 的主要帖子字段“What's on your mind”:当用户将焦点重新放在输入字段上时,更改的部分会被还原。

使用 Draft.js 编辑器在任何页面中运行以下代码段将更改第一行的文本,然后重新设置焦点。发生这种情况时,Draft 会还原更改的内容。

document.querySelector('[data-text=true]').innerHTML='replacement';
setTimeout(function(){
  document.querySelector('[contenteditable=true]').focus();
},1000);

JsFiddle 示例: https ://jsfiddle.net/m6z0xn4r/161/

我想找到一个解决方案,在将焦点重新设置在输入字段上后,更改的文本会保留在那里。

我正在寻找一种非侵入性的方式来使文本保持编辑状态。我尝试在文本字段上触发事件,但没有任何效果。我觉得使用 javascript 文本选择/范围操作可能是一个好方法,但到目前为止也没有运气。

任何帮助表示赞赏!

4

0 回答 0