我的内容脚本和测试回显扩展程序的后台脚本之间存在基于 browser.runtime.connect 的通信问题。我已在github上发布了我的代码和扩展程序包。
此扩展程序的简短说明。您可以在this GitHub test page上运行扩展程序。内容脚本使用 browser.runtime.connect 连接到后台脚本,并在单击“提交”按钮时通过 browser.runtime.Port 对象发送消息。后台脚本接收消息,将其转换为大写并发回。然后内容脚本接收修改后的消息并将其显示在页面上(收到消息字段)。
当我使用加载扩展程序按钮将其添加到Edge时,此扩展程序正常工作,如Microsoft Edge文档中所述。因此,如果您使用加载的扩展程序打开测试页,您应该会在收到的消息字段中看到“HELLO FROM BACKGROUND SCRIPT”文本。
但是如果从包中安装此扩展程序有一个奇怪的问题...在我打开此扩展程序的后台页面并重新加载测试页之前,扩展程序无效STRONG> ... 所以你可以尝试重现它:
注意:此测试扩展基于在MDN上发布的 runtime.connect 示例(抱歉,但我无法插入两个以上的链接......)。
你能帮我解决这个问题吗?也许我错过了文档中的内容......
答案 0 :(得分:1)
这是设计使然,因为您的扩展清单指定持久标志为false。在Microsoft Edge上,后台脚本的默认行为是非持久性的。