来自后台/内容脚本的Firefox附加组件访问弹出脚本?

时间:2016-01-11 17:12:53

标签: javascript google-chrome firefox google-chrome-extension firefox-addon

我正在将Chrome扩展程序转换为Firefox扩展程序。我虽然遇到了问题。

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

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

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

事情,但我需要在内容脚本和弹出页面的脚本中使用它。我研究并发现我不能多次使用require函数,所以我的问题是,我是否可以在弹出脚本和内容脚本之间共享变量?我需要双方的存储空间,而且我没有任何其他方式可以使扩展工作。

感谢。

1 个答案:

答案 0 :(得分:3)

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

两种可能的方法:

  • 如果数据不是太大/不会影响太多标签,请提前发送数据,并在发生更新时按下更新。这可以提高读取延迟,同时增加内存占用和增加写入成本。
  • 按需请求个别数据项。这对于频繁编写或大量数据更好,但代价是每个请求的延迟更高。

您也可以查看webextensions。此处尚不支持内容存储,但可能会在将来支持。