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

11

通过Google Chrome扩展程序:在内容脚本注入到页面后是否可以删除它?

据我所知,没有重载内容脚本的API方法,因此我希望重新注入脚本并删除旧脚本,如果可能的话。

2个回答

11

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

如果你想重新注入它,只需使用code或source参数调用executeScript即可。将注入的脚本定义为函数,然后在函数上调用.toString(),并使用“code”参数将它们作为原始字符串注入是一种好方法。这些函数的参数可以插入JSON字符串,这更加方便。


我很担心那就是答案;我想这意味着我需要再多做一点工作。 - Azmisov
2
它的工作方式很有趣。每当我在内容脚本中进入调试器时,面板就会显示为黄色,并且我会看到[VM]作为脚本来源。我想知道实际上实现某些东西来尝试删除所有事件侦听器和内容脚本可能创建的其他副作用需要什么。 - kzahel
最好编写一个内容脚本,这样您就可以调用一个函数来重新启动它。 - e-motiv

2

我认为,如果您动态加载内容脚本,就可以使用JavaScript强制页面刷新(window.location.reload()),这一次不加载内容脚本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接