HI
我想从客户端页面超时会话,我尝试下面的代码,但不能执行代码需要一些帮助,如何我可以处理来自用户的OK或CANCEL事件
<script>
function onBeforeUnloadAction(){
return "Would u like to discard Changes";
}
window.onbeforeunload = function(){
if((window.event.clientX<0) ||
(window.event.clientY<0))
{
return onBeforeUnloadAction();
}
}
</script>
答案 0 :(得分:2)
beforeunload event只能用于向用户显示他/她将要离开当前页面的对话框。此对话框由浏览器控制,您只能自定义对话框的警告,而不是结果。因此,您无法根据对话框的结果执行操作。这主要是出于安全考虑,以防止人们被迫留在当前页面上。
如果要在此人离开当前页面后清除任何会话数据,您应该考虑使用这些替代结构中的一个(或几个):
答案 1 :(得分:1)
onbeforeunload
必须返回一个字符串,浏览器会从该字符串创建确认框。如果你想要捕获用户没有离开(如果用户离开你就无法运行任何东西,那就是它如何),只需设置一个计时器并查看它是否会触发:
window.onbeforeunload = function(){
setTimeout(function(){
//User didnt leave
goDoFunStuff();
},500);
return 'wanna go?'
}
由于onbeforeunload
阻止,定时器只有在用户没有离开时才会触发