用于关闭 Firefox 窗口的 F​​irefox 扩展

发布于 2024-12-29 19:45:34 字数 139 浏览 0 评论 0原文

我正在开发一个 Firefox 扩展,我希望能够关闭 Firefox 窗口本身(无需任何确认)。例如,如果加载了特定的 URL,我想关闭 Firefox 窗口。使用 gBrowser 打开/关闭选项卡很容易,关闭 Firefox 窗口怎么样?

谢谢

I'm developing a firefox extension and i want to be able to close firefox window itself (without any confirm). For example, I want to close firefox window if a specific URL has been loaded. Open/close tab is easy with gBrowser, what about closing firefox window?

Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红衣飘飘貌似仙 2025-01-05 19:45:34

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

To quit Firefox

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

To restart 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);

Additional Useful Flags

eConsiderQuit : Attempt to quit if all windows are closed.
eAttemptQuit : Try to close all windows, then quit if successful.
eForceQuit : Force all windows to close, then quit.
eRestart : Restart the application after quitting. The application will be restarted with the same profile and an empty command line.

许一世地老天荒 2025-01-05 19:45:34

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

It sounds obvious but you use window.close() to close a XUL window. As to the warning, the best way is probably to temporarily switch the browser.tabs.warnOnClose preference to false. Something like this should work:

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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文