【问题标题】:Firefox add-on access popup script from background/content script?来自背景/内容脚本的 Firefox 插件访问弹出脚本?
【发布时间】:2016-01-11 17:12:53
【问题描述】:

我正在将我的 Chrome 扩展程序转换为 Firefox 扩展程序。不过我遇到了问题。

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

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

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

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

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    两种可能的方法:

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

    您可能还想查看webextensions。那里也不支持内容存储,但将来可能会支持。

    【讨论】:

    • 我的扩展使用的唯一 api 是存储 :( 但如果你说的意思是我可以将一个包含我需要的所有数据的变量从弹出脚本传递给内容脚本,那么这就是我所需要的.
    猜你喜欢
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多