Microsoft Edge中的内容脚本和背景脚本之间的通信



我在基于 browser.runtime.connect 之间的通信问题上存在问题,我的测试echo Echo扩展程序的背景脚本之间存在问题。我已经在github上发布了我的代码和扩展程序包。

此扩展程序的简短描述。您可以在此GitHub测试页面上运行扩展名。内容脚本使用 browser.runtime.connect 连接到背景脚本,并通过 browser.runtime.port.port 对象发送消息时,单击"提交"按钮。背景脚本接收到消息,将其转换为上情况并发回。然后,内容脚本接收修改后的消息并将其显示在页面上(接收到的消息字段(。

使用Microsoft Edge文档中所述,使用加载扩展名按钮时,此扩展程序正常工作。因此,如果您打开测试页面带有加载扩展程序,则应在接收到的消息字段中看到" Hello from Background Script" 文本。

但是,如果从软件包中安装了此扩展名,则存在一个奇怪的问题……直到我打开此扩展程序的背景页面之前,该扩展名不起作用,然后重新加载测试页面…因此,您可以尝试复制它:

  1. 从软件包安装此扩展程序
  2. 打开测试页面。背景脚本无法正常工作(接收到的消息字段是空的(,并且此脚本未接收已发送的消息……页面重新加载或关闭扩展名无济于事。
  3. 打开背景页面此扩展程序的。然后可以关闭此页面。
  4. 重新加载测试页面
  5. 扩展开始正常工作……

注释:此测试扩展基于 Runtime.connect 发布在MDN上的示例(对不起,但我不能插入两个以上的链接...(。

您能帮我解决这个问题吗?也许我错过了文档中的一些东西...

这是通过设计,因为您的扩展名清单指定的持续标志为false。在Microsoft Edge上,背景脚本的默认行为是非遗留的。

相关内容

  • 没有找到相关文章

最新更新