如何停止 window.unload 事件
How do I stop a window.unload event
我的 JQuery 中有两个作用于用户离开页面的函数。这个想法是,如果用户通过关闭浏览器离开页面,我们使用:
$(window).bind('beforeunload', function() {
return "Are you sure you want to leave this page without saving or submitting?";
});
现在,我们想询问用户是否只在退出页面时才保存进度,使用:
$("#logoutButton").click(function(e) {
var result = confirm("Would you like to save before logging out?");
if(result == true) {
$("#savebutton").click(); //simulate a click on save before redirecting
}
window.location.href = "www.redirectPage.com"; //go to logout page regardless of choice
});
现在,我面临的问题是,每当用户单击注销时,它都会正确执行保存检查,但它仍然会询问用户是否要离开页面,使用 beforeunload
方法。在这种情况下,有没有办法从注销按钮 click
函数内部阻止 beforeunload
触发?
您可以使用 .unbind()
删除给定事件的所有事件处理程序。在您的代码中,那将是
$(window).unbind('beforeunload');
保存后立即调用:
$("#logoutButton").click(function(e) {
var result = confirm("Would you like to save before logging out?");
if(result == true) {
$("#savebutton").click(); //simulate a click on save before redirecting
$(window).unbind('beforeunload');
}
window.location.href = "www.redirectPage.com"; //go to logout page regardless of choice
});
我的 JQuery 中有两个作用于用户离开页面的函数。这个想法是,如果用户通过关闭浏览器离开页面,我们使用:
$(window).bind('beforeunload', function() {
return "Are you sure you want to leave this page without saving or submitting?";
});
现在,我们想询问用户是否只在退出页面时才保存进度,使用:
$("#logoutButton").click(function(e) {
var result = confirm("Would you like to save before logging out?");
if(result == true) {
$("#savebutton").click(); //simulate a click on save before redirecting
}
window.location.href = "www.redirectPage.com"; //go to logout page regardless of choice
});
现在,我面临的问题是,每当用户单击注销时,它都会正确执行保存检查,但它仍然会询问用户是否要离开页面,使用 beforeunload
方法。在这种情况下,有没有办法从注销按钮 click
函数内部阻止 beforeunload
触发?
您可以使用 .unbind()
删除给定事件的所有事件处理程序。在您的代码中,那将是
$(window).unbind('beforeunload');
保存后立即调用:
$("#logoutButton").click(function(e) {
var result = confirm("Would you like to save before logging out?");
if(result == true) {
$("#savebutton").click(); //simulate a click on save before redirecting
$(window).unbind('beforeunload');
}
window.location.href = "www.redirectPage.com"; //go to logout page regardless of choice
});