首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何捕捉xulrunners关闭事件并取消它?

如何捕捉xulrunners关闭事件并取消它?
EN

Stack Overflow用户
提问于 2009-09-29 08:59:08
回答 3查看 1.3K关注 0票数 1

我想要捕捉我的xulrunner应用程序的关闭事件,当用户单击主窗口的关闭按钮,并要求他们的confirmation.If他们不确认,我想取消此关闭事件并继续应用程序。

我尝试了OnClose活动,但我无法取消它。

我如何实现这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-08 05:25:31

你可能需要两种不同的东西:

1)窗口关闭时提示。您可以使用"close“事件,例如:

代码语言:javascript
运行
复制
<!-- Creates an unclosable window -->
<window onclose="return false" ...>

我只是检查了一下,它确实起作用了。

2)应用程序即将退出时进行提示。您可以通过nsIObserverService (example)观察quit-application-requested通知来完成此操作。

(1)更接近您的要求,因为当用户按下窗口上的X按钮时,事件的顺序如下:

  1. "close“事件被调度到window
  2. (如果没有阻止它),window关闭
  3. (如果没有窗口,并且不是Mac ),应用程序开始关闭,quit - application requested被发送。
  4. 如果没有观察者拒绝退出请求,则继续关闭。

另一方面,如果您只将您的检查放在窗口的onclose处理程序中,其他退出应用程序的方式(Win上的File-Exit/Mac上的-Quit)可能会触发它太晚(例如,在关闭其他窗口之后)。此外,如果你的应用程序可以有多个“主”窗口(具有onclose逻辑),用户将不得不处理多个确认,这可能是也可能不是你想要的。

这里有一些对Firefox代码的引用(如果我没有遗漏什么,它也应该与您的应用程序打包在一起),您可以研究和重用所采用的方法:

  • nsTryToClose component
  • closeWindow, canQuitApplication, goQuitApplication
票数 3
EN

Stack Overflow用户

发布于 2011-03-09 04:04:44

对于其他正在寻找的人,您也可以这样做

将此文件放入主窗口

代码语言:javascript
运行
复制
onclose="if(CheckForClose() == false)return false"


create this javascript function somewhere

function CheckForClose()
   {
         var result = confirm('Do you want to close?');         

         return result;
   }
票数 1
EN

Stack Overflow用户

发布于 2011-08-16 03:36:23

对于程序性的和DOM级别2兼容的,回答Nickolay的评论(1):

代码语言:javascript
运行
复制
window.addEventListener(
  'close', function (event) {
    // do stuff...
    event.preventDefault();
  },
  true);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1491381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档