2012-11-30 969 views
0

当用户通过在浏览器中输入地址离开网站并点击返回或用户关闭浏览器中的浏览器时,我试图执行JavaScript函数一段时间'x'按钮。离开网站或关闭浏览器时触发的事件

我试图卸载事件,但我不能得到警报

这是我在做什么:

$(window).unload(function() { 
    alert("Are you sure?"); 
}); 

$(body).unload(function() { 
    alert("Are you sure?"); 
}); 

我跑出来的想法!

+1

[这是你要找的](http://stackoverflow.com/a/6065085/467164) –

+0

[jQuery - beforeunload]的可能重复(http://stackoverflow.com/questions/6063522/jquery-beforeunload) – undefined

回答

2

您可以收听在卸载事件之前触发的beforeunload事件。

$(window).on('beforeunload', function(){ 
    // ... 
}) 
+1

beforeunload期望你返回一个字符串,我相信这可能值得指出。 –

2

某些浏览器(如Chrome)会在卸载事件处理程序中阻止警报,以防止出现这些令人讨厌的消息。尝试一个console.log或者放入一个断点来找出当你没有警报时处理程序是否被触发。

等类似的一行的问题:

window.onunload is not working properly in Chrome browser. Can any one help me?

只能通过returning a string in a beforeunload handler(HT @undefined)通过警报,但我会避免甚至认为,因为弹出窗口一般都是坏的,大多数人在他们真正考虑盒子的内容之前,将做最低限度的处理,以制定出这种使人不快的选择。

0
$(window).bind('beforeunload', function(){ 
    alert("Are your sure?") 
}); 
1

你window.onbeforeunload定义,如果它返回一个字符串,它会弹出一个确认导航提示与该消息的功能。

警报可能会被忽略!

window.onbeforeunload = function() { 
    return "All unsaved data will be lost. Are you sure?"; 
}; 

一些浏览器处理不同的onbeforeunload。最近的Firefox例如会忽略你的返回字符串,只显示一个标准的消息。