我使用了具有所谓背景页面的Chrome扩展程序 - 一个html页面,每个浏览器窗口在后台加载一次。您可以存储一些javascript变量,可以访问扩展自己的本地存储,可以与内容脚本(注入页面的脚本)进行通信和强制。
Firefox中是否有类似内容,如何将其用于上面列出的任务?
答案 0 :(得分:12)
如果您使用(相对)新的附加SDK,那么驻留在您的lib目录中的主要javascript文件相当于Chrome扩展程序的后台页面 - 一个在后台运行并生成/创建/插入的持久脚本面板,小部件和内容脚本。
关于您的具体要求:
<强> 1。 localStorage: Firefox中的附加组件无法直接访问localStorage。但是,您可以使用 simple-storage 来存储类似于localStorage的数据。
<强> 2。与内容脚本的通信:附加组件可以使用 port 或 postMessage 与内容脚本进行通信。
答案 1 :(得分:0)
从传统Firefox扩展的角度来看,浏览器本身只是包含文档的另一个窗口,尽管这是一个XUL文档而不是HTML文档。因此,您可以存储每个窗口的变量,但必须注意不要覆盖其他扩展变量,这通常意味着声明一个顶级对象并将所有变量添加为该对象的属性。
在Windows之间共享变量有点困难,但幸运的是JavaScript模块在简单的情况下解决了这个问题(原始类型)。
扩展程序可以与内容脚本进行通信,尽管有一些包装器可以防止您意外地做一些愚蠢的事情。