Firefox addon 如何关闭firefox中的侧边栏

Firefox addon 如何关闭firefox中的侧边栏,firefox-addon,sidebar,Firefox Addon,Sidebar,我的firefox插件中有一个侧边栏。我希望此侧栏具有以下行为-如果在关闭浏览器时侧栏处于打开状态,则应强制关闭侧栏(以便下次打开浏览器时侧栏不会处于打开状态)。我正在尝试这样做: uninit: function() { var sidebarWindow = document.getElementById("sidebar").contentWindow; if (sidebarWindow.location.href == "chrome://myaddon/content

我的firefox插件中有一个侧边栏。我希望此侧栏具有以下行为-如果在关闭浏览器时侧栏处于打开状态,则应强制关闭侧栏(以便下次打开浏览器时侧栏不会处于打开状态)。我正在尝试这样做:

uninit: function() {
    var sidebarWindow = document.getElementById("sidebar").contentWindow;
    if (sidebarWindow.location.href == "chrome://myaddon/content/mysidebar.xul") {
        // Act on the sidebar content
        toggleSidebar('mySampleSidebar');
    }
}
对于window.unload事件,我将其称为unnit:

addEventListener(“unload”,function(){myobj.uninit()},false)

有人能告诉我如何做到这一点,因为我正在尝试做的是不工作

谢谢
Kapil

在firefox侧边栏中添加

toggleSidebar();
“加载”
事件侦听器函数中

例如,请参见此处:

sidebar.onFirefoxLoad = function(event) {
  document.getElementById("contentAreaContextMenu")
          .addEventListener("popupshowing", function (e) 
             { sidebar.showFirefoxContextMenu(e); }, false);

           toggleSidebar();
};

window.addEventListener("load", sidebar.onFirefoxLoad, false);

您关闭侧栏的代码是正确的,但我认为卸载更改浏览器窗口(browser.xul)的启动状态为时已晚,因为browser.xul已被卸载(其状态,包括侧栏状态,已被存储)

而是在卸载前使用。我测试了以下各项,似乎效果良好:
window.addEventListener(“卸载”,myobj.uninit,false)

在极少数情况下,浏览器进程可能会被终止,因此不会调用卸载(用户终止或崩溃)。我不确定是否偶尔会像存储选项卡一样存储侧边栏的状态,但如果它这样做,在这种罕见的情况下,它可能会打开并显示侧边栏。要处理这种情况,您可以添加@Vinothkumar建议的内容


window.addEventListener(“load”,myobj.uninit,false)

为什么要将其添加到load?我猜你所做的只是在浏览器打开时关闭它,而不是在浏览器关闭时关闭它?请注意,您没有检查侧栏,因此它可能是其他人的侧栏。在考虑了一会儿之后,我认为加载的想法也是一个很好的补充,也是一个很好的概念,因此我对此进行了投票。然而,我仍然认为在卸载时捕获它是更好的默认情况,我肯定认为您应该检查一下您的边栏是否像@Kapil那样。