Firefox加载项从后台/内容脚本访问弹出脚本

Firefox add-on access popup script from background/content script?

本文关键字:脚本 访问 加载项 后台 Firefox      更新时间:2023-09-26

我正在将Chrome扩展转换为Firefox扩展。不过我有个问题。

我的扩展需要存储数据,以便在内容脚本和弹出页面中加载扩展。我在Chrome扩展中对此没有问题。我只使用chrome.storage来传递和检索存储,我可以在内容和弹出脚本中轻松使用它。

使用Firefox,我很难弄清楚我必须做些什么。我知道我不能使用chrome.storage,而是使用

const storage = require("sdk/simple-storage").storage;

事情,但我需要在内容脚本和弹出页面的脚本中都使用它。我研究发现,我不能多次使用require函数,所以我的问题是,我能在弹出脚本和内容脚本之间共享变量吗?我需要两边的存储空间,我看不到任何其他方法可以使扩展工作。

谢谢。

您使用消息传递让内容脚本和主插件相互通信。

两种可能的方法:

  • 如果数据不太大/不会影响太多选项卡,请提前发送数据,并在更新发生时向下推送。这以增加内存占用和增加写入成本为潜在代价,提供了卓越的读取延迟
  • 根据需要请求单个数据项。这对于频繁写入或大型数据项更好,但代价是每个请求的延迟更高

你可能还想看看网络扩展。那里也不支持内容存储,但将来可能会支持。