Firefox扩展 - 在两个或多个窗口之间共享公共状态

时间:2013-08-21 13:02:52

标签: firefox firefox-addon data-sharing

我正在开发firefox扩展。 问题是,当我打开第二个窗口(Ctrl + N)时,我的扩展名为新打开的窗口具有新状态。 如果我在第二个窗口做出反应或改变,它就不会影响第一个窗口,反之亦然。

实施例 在Firefox上安装了扩展程序 第一个窗口打开了我的扩展功能正常,更改状态,登录,查看数据等 然后开了第二个。我的扩展进入新状态我无法获得先前的状态(第一个窗口状态)。

如何在第一个和第二个或其他firefox打开的窗口之间保持相同的状态。?

1 个答案:

答案 0 :(得分:0)

我是否正确地假设您正在开发XUL叠加插件,而不是SDK插件?

在Windows之间共享状态的一种方法是使用Javascript code modules。代码模块只会加载一次(除非显式卸载),因此会将相同的数据暴露给多个窗口。请务必阅读"Sharing objects using code modules"。但是,请注意,因此在关闭窗口时,必须清除与代码模块关联并存储在代码模块中的任何状态,否则会泄漏。

如果您使用的是SDK,那么您的main.js模块已经相当于代码模块。内容脚本可以使用消息传递来存储和检索模块中的状态。