我正在开发firefox扩展。 问题是,当我打开第二个窗口(Ctrl + N)时,我的扩展名为新打开的窗口具有新状态。 如果我在第二个窗口做出反应或改变,它就不会影响第一个窗口,反之亦然。
实施例 在Firefox上安装了扩展程序 第一个窗口打开了我的扩展功能正常,更改状态,登录,查看数据等 然后开了第二个。我的扩展进入新状态我无法获得先前的状态(第一个窗口状态)。
如何在第一个和第二个或其他firefox打开的窗口之间保持相同的状态。?
答案 0 :(得分:0)
我是否正确地假设您正在开发XUL叠加插件,而不是SDK插件?
在Windows之间共享状态的一种方法是使用Javascript code modules。代码模块只会加载一次(除非显式卸载),因此会将相同的数据暴露给多个窗口。请务必阅读"Sharing objects using code modules"。但是,请注意,因此在关闭窗口时,必须清除与代码模块关联并存储在代码模块中的任何状态,否则会泄漏。
如果您使用的是SDK,那么您的main.js
模块已经相当于代码模块。内容脚本可以使用消息传递来存储和检索模块中的状态。