【问题标题】:Content Script Injection at Install for Firefox Web ExtensionFirefox Web 扩展安装时的内容脚本注入
【发布时间】:2016-05-10 00:18:05
【问题描述】:

如果在 Firefox 的 manifest.json 中指定了内容脚本,Firefox 也会为已打开的选项卡加载内容脚本并执行它们,即使选项卡已经处于加载和就绪状态。

为已打开的选项卡安装扩展程序时,Google Chrome 不会添加任何内容脚本。为旧选项卡刷新页面时会加载内容脚本。

我想问一下Firefox的行为是预期的还是bug?

【问题讨论】:

    标签: firefox firefox-addon-webextensions


    【解决方案1】:

    就兼容性而言,这是一个错误。

    1. Chrome 不这样做。
    2. 结果,很多扩展implement custom logic达到效果。
    3. 必须考虑副作用。假设您的内容脚本将一些 UI 注入到页面中。然后更新扩展。这相当于重新启动扩展程序,突然间您有了 2 个 UI 副本。如果您只是附加事件侦听器也有效,因为(至少在 Chrome 的情况下)旧内容脚本的上下文继续存在(处于“孤立”状态)。

    最后一点非常重要,可能是 Chrome 默认不这样做的原因。在某些时候,我就这个问题提出了very long post - 如果您要将其作为错误报告给 Mozilla,请包括在内。还有一个相关的feature request

    明智的(并且向后兼容)是在清单中的内容脚本描述中添加一个参数 - 是否注入现有页面。由开发人员来保证副作用得到处理。这通常requires even more code 只是与旧脚本沟通它需要结束和清理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 2022-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 2012-04-12
      相关资源
      最近更新 更多