关于 window中onbeforeunload的应用
问题:
用户登录到系统中了,点击页面上的“退出”按钮,可以清除该用户的在线信息;
但是当用户直接点击了 浏览器的关闭按钮后,用window的onbeforeunload事件能捕获这种操作。
期望的效果是弹出确认窗口 选择了“确定”后能执行我的指定代码,当选择了“取消”后,不执行任何代码。
但在测试中出现这样的效果:
直接点击浏览器的关闭按钮后,发现总是先执行指定的代码,而后才是 弹出的确认窗口? 这和期望的效果正好相反。如此就没有弹出确认窗口的必要了。
其实,这种机制 应该像confirm就对了。能告诉调用者 用户选择的是“确定”还是“取消”,之后按照逻辑各自处理。
在网上查了,都是说 只要点击了“确定”就是触发 onbeforeunload事件。可是这看起来矛盾,应该是先有onbeforeunload事件弹出的确认窗口,才能选择“确定”或者“取消”啊!
以下是部分代码:
页面中写上:
window.onbeforeunload = function(){
event = event || window.event;//浏览器兼容
event.returnValue = "确定要退出系统吗?";
}
在哪里知道 用户选择了“确定”?而不是 弹出这个确认窗口,就执行了期望的代码?
请高手赐教! 不胜感激!