安装时用于Firefox Web扩展的内容脚本注入

Joh*_*ell 7 firefox google-chrome google-chrome-extension firefox-addon-webextensions

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

为已打开的标签安装扩展程序时,Google Chrome不会添加任何内容脚本.为旧版标签刷新页面时会加载内容脚本.

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

Xan*_*Xan 6

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

  1. Chrome不会这样做.
  2. 因此,许多扩展实现了自定义逻辑以实现该效果.
  3. 人们必须考虑副作用.假设您的内容脚本将一些UI注入页面.然后更新扩展名.这相当于扩展重启,突然间你有2个UI副本.如果你只是附加事件监听器也是有效的,因为(至少在Chrome的情况下)旧的内容脚本的上下文继续存在(处于"孤立"状态).

最后一点非常重要,可能是Chrome默认情况下不这样做的原因.在某些时候,我发了一篇关于这个问题的文章很长 - 如果你要将此作为一个bug报告给Mozilla,请加入.此功能请求也是相关的.

什么是明智的(和向后兼容)是在清单中的内容脚本描述中添加一个参数 - 是否注入现有页面.开发人员可以保证副作用得到妥善处理.这通常需要更多代码才能与需要关闭和清理的旧脚本进行通信.