我正在开发 Firefox 扩展。问题是当我打开第二个窗口(Ctrl + N)时,我的扩展程序具有新打开窗口的新状态。如果我对第二个窗口做出反应或更改,它永远不会影响第一个窗口,反之亦然。
Ex Installed extension on Firefox 第一个窗口打开。我的扩展程序正常运行,更改状态,登录,查看数据等然后打开第二个。我的扩展进入新状态我无法获得以前的状态(第一个窗口状态)。
如何在第一个和第二个或其他 Firefox 打开的窗口之间保持相同的状态。?
我正在开发 Firefox 扩展。问题是当我打开第二个窗口(Ctrl + N)时,我的扩展程序具有新打开窗口的新状态。如果我对第二个窗口做出反应或更改,它永远不会影响第一个窗口,反之亦然。
Ex Installed extension on Firefox 第一个窗口打开。我的扩展程序正常运行,更改状态,登录,查看数据等然后打开第二个。我的扩展进入新状态我无法获得以前的状态(第一个窗口状态)。
如何在第一个和第二个或其他 Firefox 打开的窗口之间保持相同的状态。?
我是否正确假设您正在开发 XUL 覆盖附加组件,而不是 SDK 附加组件?
在窗口之间共享状态的一种方法是使用Javascript 代码模块。一个代码模块只会被加载一次(除非显式卸载),因此会将相同的数据暴露给多个窗口。请务必阅读“使用代码模块共享对象”。但是,请注意,因此在关闭窗口时,必须清除与其关联并存储在代码模块中的任何状态,否则会泄漏。
如果您改用 SDK,则您的main.js
模块已经等同于代码模块。内容脚本可以使用消息传递来存储和检索模块中的状态。