我想要捕捉我的xulrunner应用程序的关闭事件,当用户单击主窗口的关闭按钮,并要求他们的confirmation.If他们不确认,我想取消此关闭事件并继续应用程序。
我尝试了OnClose活动,但我无法取消它。
我如何实现这一点?
发布于 2009-10-08 05:25:31
你可能需要两种不同的东西:
1)窗口关闭时提示。您可以使用"close“事件,例如:
<!-- Creates an unclosable window -->
<window onclose="return false" ...>我只是检查了一下,它确实起作用了。
2)应用程序即将退出时进行提示。您可以通过nsIObserverService (example)观察quit-application-requested通知来完成此操作。
(1)更接近您的要求,因为当用户按下窗口上的X按钮时,事件的顺序如下:
另一方面,如果您只将您的检查放在窗口的onclose处理程序中,其他退出应用程序的方式(Win上的File-Exit/Mac上的-Quit)可能会触发它太晚(例如,在关闭其他窗口之后)。此外,如果你的应用程序可以有多个“主”窗口(具有onclose逻辑),用户将不得不处理多个确认,这可能是也可能不是你想要的。
这里有一些对Firefox代码的引用(如果我没有遗漏什么,它也应该与您的应用程序打包在一起),您可以研究和重用所采用的方法:
发布于 2011-03-09 04:04:44
对于其他正在寻找的人,您也可以这样做
将此文件放入主窗口
onclose="if(CheckForClose() == false)return false"
create this javascript function somewhere
function CheckForClose()
{
var result = confirm('Do you want to close?');
return result;
}发布于 2011-08-16 03:36:23
对于程序性的和DOM级别2兼容的,回答Nickolay的评论(1):
window.addEventListener(
'close', function (event) {
// do stuff...
event.preventDefault();
},
true);https://stackoverflow.com/questions/1491381
复制相似问题