如果在 Firefox 的 manifest.json 中指定了内容脚本,Firefox 也会为已打开的选项卡加载内容脚本并执行它们,即使选项卡已经处于加载和就绪状态。
为已打开的选项卡安装扩展程序时,Google Chrome 不会添加任何内容脚本。为旧选项卡刷新页面时会加载内容脚本。
我想问的是Firefox的行为是预期的还是bug?
如果在 Firefox 的 manifest.json 中指定了内容脚本,Firefox 也会为已打开的选项卡加载内容脚本并执行它们,即使选项卡已经处于加载和就绪状态。
为已打开的选项卡安装扩展程序时,Google Chrome 不会添加任何内容脚本。为旧选项卡刷新页面时会加载内容脚本。
我想问的是Firefox的行为是预期的还是bug?
就兼容性而言,这是一个错误。
最后一点非常重要,这可能是 Chrome 默认不这样做的原因。在某个时候,我就这个问题发表了一篇很长的文章——如果你打算将此作为一个错误报告给 Mozilla,请包括在内。还有这个相关的功能请求。
明智的(并且向后兼容)是在清单中的内容脚本描述中添加一个参数 - 是否注入现有页面。由开发人员来保证副作用得到处理。这通常需要更多的代码才能与需要结束和清理的旧脚本进行通信。