2012-02-17 81 views
0

我想处理window.onbeforeunload事件。我可以这样处理如何处理浏览器的window.onbeforeunload事件

window.onbeforeunload = function() { 
    return "MSG"; 
} 

但在这种情况下,它显示了一个弹出要求用户确认我不希望出现这种情况的确认对话框相反,它会直接return falseevent.cancel = true

回答

1

你不能在onBeforeUnload中做到这一点。因为这个原因;用户已经发送请求离开页面并且事件已被拦截。确认是你可以做的最好的,除非你阻止事件进一步发展到事件链(比如onkeydown)。例如,如果您希望用户无法使用其键盘在历史中前后移动或重新加载页面,则可以使用;

var catchKey = { 
    37: true, /// left 
    39: true /// right 
}; 
window.onkeydown = function(event) { 
    if (catchKey[event.keyCode] && event.ctrlKey) { 
     event.preventDefault(); 
     event.stopPropagation(); 
    } 
} 

希望有所帮助!

0

基本上你想阻止用户关闭浏览器窗口/标签页或者离开你的页面?

我相信没有浏览器制造商会让你这么做......那么在这种情况下关闭浏览器的唯一方法就是杀死这个进程。

所以:据我所知,不可能。