Firefox addon 恢复xul中的边栏状态

Firefox addon 恢复xul中的边栏状态,firefox-addon,xul,firefox-sidebar,Firefox Addon,Xul,Firefox Sidebar,我正在创建一个边栏扩展,其中包含一个新的选项卡按钮,该按钮在document.createElement函数的帮助下,使用javascript将包含一些元素的新选项卡添加到我的边栏中的框中。现在,我想在下次关闭侧边栏后加载扩展时,恢复用户在使用扩展时添加的新选项卡以及文本框中填充的所有以前的值。就像firefox的会话恢复功能一样据我所知,您谈论的是tabbox元素。 实际上,您有两个不同的XUL文档——一个是在overlay.XUL和侧栏的XUL文档中重新定义的。 我通过以下方式解决了侧边栏数

我正在创建一个边栏扩展,其中包含一个新的选项卡按钮,该按钮在document.createElement函数的帮助下,使用javascript将包含一些元素的新选项卡添加到我的边栏中的框中。现在,我想在下次关闭侧边栏后加载扩展时,恢复用户在使用扩展时添加的新选项卡以及文本框中填充的所有以前的值。就像firefox的会话恢复功能一样

据我所知,您谈论的是tabbox元素。 实际上,您有两个不同的XUL文档——一个是在overlay.XUL和侧栏的XUL文档中重新定义的。 我通过以下方式解决了侧边栏数据存储的完全相同问题: 所有javascript代码都存储为主窗口的对象,如下所示:

var your_javascript_module = (function () {
//your code here
})();
将模块初始化放在scripts.js中,从overlay.xul引用它 打开侧栏并加载(比如sidebar.xul)时,可以使用以下代码访问此对象:

var your_javascript_module =window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIWebNavigation)
.QueryInterface(Components.interfaces.nsIDocShellTreeItem)
.rootTreeItem
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindow).your_javascript_module;
使用此选项,您将可以访问sidebar.xul范围内的所有代码。 要存储taboxe的状态,只需在您的_javascript_模块中创建一些“存储”对象,并在每次打开侧栏时刷新sidebar.xul内容

我建议将所有javascript放在overlay中,因为它将始终存在,直到FF打开,当然,与关闭时卸载的侧栏脚本相反。
希望这仍然有用-

你成功实现了你想要的吗?实际上没有。。。我的想法有点改变。。所以找到了解决问题的方法。。无论如何,谢谢你的帮助。。