【问题标题】:Firefox extension to close firefox windowFirefox 扩展关闭 Firefox 窗口
【发布时间】:2012-01-31 16:58:58
【问题描述】:

我正在开发一个 Firefox 扩展程序,我希望能够自行关闭 Firefox 窗口(无需任何确认)。例如,如果已加载特定 URL,我想关闭 firefox 窗口。使用gBrowser打开/关闭标签很容易,关闭firefox窗口怎么样?

谢谢

【问题讨论】:

    标签: firefox firefox-addon xul


    【解决方案1】:

    退出 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 :退出后重新启动应用程序。应用程序将使用相同的配置文件和空命令行重新启动。

    【讨论】:

      【解决方案2】:

      这听起来很明显,但您使用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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多