当用户通过在浏览器中键入地址并点击返回或用户关闭浏览器点击“x”按钮时,我试图执行一个javascript函数。
我尝试了卸载事件,但我无法获得警报
这就是我在做的事情:
$(window).unload(function () {
alert("Are you sure?");
});
也
$(body).unload(function () {
alert("Are you sure?");
});
我的想法已经用完了!
答案 0 :(得分:2)
您可以在卸载页面之前收听在卸载事件之前触发的beforeunload
事件。
$(window).on('beforeunload', function(){
// ...
})
答案 1 :(得分: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)传递警报,但我会避免这样做,因为弹出窗口通常很糟糕,并且大多数人会做最少的处理来计算制造这个东西在他们实际考虑盒子的内容之前选择了。选择。
答案 2 :(得分:1)
你在window.onbeforeunload中定义的函数,如果它返回一个字符串,它会弹出一条带有该消息的确认导航提示。
警报可能会被忽略!
window.onbeforeunload = function() {
return "All unsaved data will be lost. Are you sure?";
};
有些浏览器以不同方式处理onbeforeunload。例如,最近的Firefox将忽略您的返回字符串,只显示标准消息。
答案 3 :(得分:0)
$(window).bind('beforeunload', function(){
alert("Are your sure?")
});