gpt4 book ai didi

javascript - Microsoft Edge 中内容脚本和后台脚本之间的通信

转载 作者:行者123 更新时间:2023-11-29 23:45:48 25 4
gpt4 key购买 nike

我的测试回显扩展的内容脚本和后台脚本之间基于 browser.runtime.connect 的通信存在问题。我已经在 github 上发布了我的代码和扩展包.

此扩展的简短描述。您可以在 this GitHub test page 上运行此扩展。 .内容脚本使用 browser.runtime.connect 连接到后台脚本,并在单击“提交”按钮时通过 browser.runtime.Port 对象发送消息。后台脚本接收消息,将其转换为大写并发回。然后content script接收修改后的消息并显示在页面上(received message field)。

当我使用 Microsoft Edge 文档中所述的加载扩展 按钮将它添加到 Edge 时,此扩展工作正常。因此,如果您使用加载的扩展程序打开测试页面,您应该会在收到的消息字段中看到“HELLO FROM BACKGROUND SCRIPT”文本。。 p>

但是如果这个扩展是从一个包中安装的,就会出现一个奇怪的问题......在我打开这个扩展的后台页面并重新加载测试页面 …所以你可以尝试重现它:

  1. 从包中安装此扩展
  2. 打开测试页。后台脚本无法正常工作(已接收消息字段 为空)并且该脚本无法接收已发送的消息……页面重新加载或关闭/打开扩展程序无济于事。
  3. 打开此扩展程序的后台页面。那么这个页面可能会被关闭。
  4. 重新加载测试页
  5. 扩展程序开始正常工作......

注意:此测试扩展基于 MDN 上发布的 runtime.connect 示例(抱歉,但我不能插入两个以上的链接...)。

你能帮我解决这个问题吗?也许我遗漏了文档中的某些内容...

最佳答案

这是设计使然,因为您的扩展 list 将持久标志指定为 false。在 Microsoft Edge 上,后台脚本的默认行为是非持久的。

关于javascript - Microsoft Edge 中内容脚本和后台脚本之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44234322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com