如何处理浏览器的window.onbeforeunload事件

时间:2012-02-17 09:02:40

标签: javascript

我想处理window.onbeforeunload事件。我可以这样处理它

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

但在这种情况下,它会显示一个弹出窗口,要求用户确认我不想要该确认对话框,而是直接return false event.cancel = true

2 个答案:

答案 0 :(得分: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();
    }
}

希望有所帮助!

答案 1 :(得分:0)

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

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

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