Как закрыть боковую панель в Firefox - PullRequest
2 голосов
/ 28 июля 2010

У меня есть боковая панель внутри моего аддона 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');
    }
}

Я вызываю этот uninit для события window.unload:

window.addEventListener ("unload", function () {myobj.uninit ()}, false);

Может кто-нибудь сказать мне, как этого добиться, поскольку то, что я пытаюсь сделать, не работает.

Спасибо, Капил

Ответы [ 2 ]

1 голос
/ 12 августа 2010

В вашем Firefox наложении javascript добавьте

toggleSidebar();

в функции прослушивателя событий "load".

Смотрите здесь, например:

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

           toggleSidebar();
};

window.addEventListener("load", sidebar.onFirefoxLoad, false);
0 голосов
/ 26 августа 2011

Ваш код подходит для закрытия боковой панели, но я думаю, unload слишком поздно, чтобы изменить состояние запуска окна браузера (browser.xul), потому что browser.xul уже выгружен (иего состояние, включая состояние боковой панели, уже сохранено).

Вместо этого используйте перед загрузкой.Я проверил следующее, и оно, кажется, работает нормально:
window.addEventListener("unload", myobj.uninit, false)

В редких случаях процесс браузера может быть остановлен, поэтому выгрузка не будет вызвана (пользователь убивает его или он падает).Я не уверен, что время от времени сохраняет состояние боковой панели, как на вкладках, но если это так, оно может открыться и иметь боковую панель видимой в этом редком случае.Чтобы справиться с этим делом, вы можете добавить то, что предложил @Vinothkumar.

window.addEventListener("load", myobj.uninit, false)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...