2011-03-29 28 views
15

我使用了Chrome扩展,它具有所谓的后台页面 - 每个浏览器窗口在后台加载的HTML页面。您可以在那里存储一些JavaScript变量,可以访问扩展自己的本地存储,可以与内容脚本(脚本注入页面)进行反馈和强制。firefox插件有没有类似于“背景页面”概念的东西?

在Firefox中是否有类似的东西,以及如何将它用于上面列出的任务?

回答

0

从传统Firefox扩展的角度来看,浏览器本身就是另一个包含文档的窗口,尽管这是一个XUL文档,而不是HTML文档。所以你可以存储每个窗口的变量,尽管你必须小心不要覆盖其他扩展变量,这通常意味着声明一个顶级对象并将所有变量作为该对象的属性添加。

在窗口之间共享变量曾经有点困难,但幸运的是JavaScript模块在简单情况下(原始类型)解决了这个问题。

扩展可以与内容脚本进行通信,尽管有一些包装可以防止您意外地做一些愚蠢的事情。

12

如果您使用的是相对较新的附加SDK,那么驻留在lib目录中的主javascript文件相当于Chrome扩展的后台页面 - 一个在后台运行并生成/创建/插入面板,小部件和内容脚本。

关于你提到的具体要求:

1的localStorage:附加组件在Firefox不能直接访问的localStorage。但是,您可以使用simple-storage来存储类似于localStorage的数据。

2.内容脚本通讯:附加组件可以使用port的postMessage内容的脚本进行通信。

相关问题