Firefox扩展关闭firefox窗口

时间:2012-01-29 22:03:07

标签: firefox firefox-addon xul

我正在开发一个firefox扩展,我希望能够关闭firefox窗口本身(没有任何确认)。例如,如果已加载特定URL,我想关闭firefox窗口。使用gBrowser可以轻松打开/关闭选项卡,关闭firefox窗口怎么样?

谢谢

2 个答案:

答案 0 :(得分:4)

退出Firefox

Components
  .classes['@mozilla.org/toolkit/app-startup;1']
  .getService(Components.interfaces.nsIAppStartup)
  .quit(Components.interfaces.nsIAppStartup.eAttemptQuit)




重启Firefox

var boot = Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(Components.interfaces.nsIAppStartup);
boot.quit(Components.interfaces.nsIAppStartup.eForceQuit|Components.interfaces.nsIAppStartup.eRestart);




其他有用标志

eConsiderQuit :如果所有窗口都关闭,则尝试退出。
eAttemptQuit :尝试关闭所有窗口,如果成功则退出 eForceQuit :强制所有窗口关闭,然后退出 eRestart :退出后重启应用程序。应用程序将使用相同的配置文件和空命令行重新启动。

答案 1 :(得分:1)

听起来很明显,但您使用window.close()来关闭XUL窗口。至于警告,最好的方法可能是暂时将browser.tabs.warnOnClose首选项切换为false。这样的事情应该有效:

Components.utils.import("resource://gre/modules/Services.jsm");

var prefName = "browser.tabs.warnOnClose";
var restorePref = false;
if (Services.prefs.getBoolPref(prefName))
{
  Services.prefs.setBoolPref(prefName, false);
  restorePref = true;
}

window.close();

if (restorePref)
  Services.prefs.setBoolPref(prefName, true);