Chrome扩展程序:如何在注入后删除内容脚本?

Azm*_*sov 7 javascript google-chrome-extension

使用Google Chrome扩展程序:是否可以在内容脚本注入页面后将其删除?

没有用于重新加载内容脚本的API方法(据我所知),所以如果可能的话,我想重新注入脚本并删除旧脚本.

kza*_*hel 7

不,你不能“删除”它。运行内容脚本可能会产生副作用,例如在 window 对象上声明变量和函数、连接到后台页面或侦听 DOM 事件。如果您的内容脚本没有副作用,则与根本没有注入是相同的。

如果您想重新注入它,只需使用代码或源参数调用 executeScript。简单地将注入的脚本定义为函数,然后在函数上调用 .toString() ,然后将它们作为原始字符串注入到 executeScript 中,将它们作为原始字符串注入会很好。这些函数的参数可以作为 JSON 字符串插入,更加方便。

  • 它的工作原理很有趣。每当我在内容脚本中输入调试器时,窗格都会显示为黄色,并且我将 [VM] 视为脚本源。我想知道实际实现一些尝试删除所有事件侦听器以及内容脚本可能产生的任何其他副作用需要什么。 (2认同)