Javascript:离开单页应用程序时的用户确认

时间:2012-07-24 16:55:03

标签: javascript extjs extjs4.1 extjs-mvc

我想让用户确认她想要离开我的单页应用程序。 ExtJS 4.1提供onWindowUnload,我想插入Confirm dialog

如果用户决定继续关闭选项卡/窗口,则注销URL的Ajax request应告知服务器端用户已注销。

上述方法是否可行?

是否可以在ExtJS MVC controller中插入onWindowUnload事件?

PS 用户离开单页应用可以是以下任意一种:浏览器标签关闭,浏览器窗口关闭,浏览器返回按钮,浏览器转发按钮。

1 个答案:

答案 0 :(得分:3)

您需要在窗口的onbeforeunload事件中添加一个侦听器。

这是一种特殊类型的事件处理程序,您应该仔细阅读文档。

MDN文档:https://developer.mozilla.org/en/DOM/window.onbeforeunload

MS docs:http://msdn.microsoft.com/en-us/library/ie/ms536907(v=vs.85).aspx

Ext的标准附加事件处理程序的方式对于此特定事件不起作用。

您需要使用标准addEventListenerattachEvent方法。

示例:

http://jsfiddle.net/NhLQK/9/

  • 我可以使用自己的对话框吗?否
  • 我可以在Firefox中显示自己的消息吗?否
  • 我可以使用确认()吗?否
  • 我可以让它们在不同的浏览器中看起来一样吗?否
  • 我可以在用户关闭浏览器之前触发AJAX消息吗?是, 如果它是synchronous

    Ext.Ajax.request({   url:'some url',   异步:假的,   方法: 'POST' });

†它似乎在Chrome中使用ext 4.1.1