Javascript chrome扩展不';我不能在facebook上正常工作
我正在开发一个chrome扩展,它可以改变chrome中内容可编辑div的文本内容。它在gmail这样的网站上运行得很好,但在facebook上有一个问题,内容被修改后,你关闭包含div的对话框,然后打开它,所有的修改都被删除,只有通过键盘手动输入的文本 我通过javascript对文本进行如下更改:Javascript chrome扩展不';我不能在facebook上正常工作,javascript,facebook,google-chrome-extension,Javascript,Facebook,Google Chrome Extension,我正在开发一个chrome扩展,它可以改变chrome中内容可编辑div的文本内容。它在gmail这样的网站上运行得很好,但在facebook上有一个问题,内容被修改后,你关闭包含div的对话框,然后打开它,所有的修改都被删除,只有通过键盘手动输入的文本 我通过javascript对文本进行如下更改: document.getSelection().anchorNode.textContent = "something"; 事情是这样的: 但在关闭对话框并再次打开后,仅显
document.getSelection().anchorNode.textContent = "something";
事情是这样的:
但在关闭对话框并再次打开后,仅显示手动输入的文本
如上所述,这个问题只存在于facebook上。看起来dom正在被监视,对其所做的任何更改都将被删除
不过,其他扩展可能会像语法一样改变这个div的内容。这怎么可能?您的扩展是否需要facebook或类似网站的许可才能工作?请参阅“此功能已过时。虽然它可能在某些浏览器中仍然有效,但不鼓励使用,因为它可以随时删除。请尽量避免使用它。”-除此之外,文本已经输入,问题在于关闭后将其保留在div中。execCommand的要点是更改应该保持不变。另外,正如我的回答所指出的,execCommand在可预见的将来会起作用,因为一个新的编辑API规范还没有完成,而且要知道这些东西通常运行得有多慢,可能还要再花5-20年的时间。好吧,我试过了,但没有起作用。执行execCommand时,对话框会自动中断并关闭。出于安全原因,该网站似乎运行一个MutationObserver并删除任何以编程方式插入的内容。但应该有办法解决这个问题,例如,它与语法有关。它肯定与扩展无关,因为如果您试图通过控制台更改div的textContent,那么在关闭对话框后,插入的所有内容都将被网站本身删除。要使用execCommand,您需要首先关注具有
contenteditable
属性的元素。