当用户单击带有以下代码的浏览器的刷新或关闭按钮时,我让浏览器显示确认模式:
window.onbeforeunload = confirmCloseOrRefresh;
function confirmCloseOrRefresh() {
var confirmMessage = confirm('Are you sure to exit?');
return confirmMessage;
}
现在,我在页面上有一个自定义刷新按钮,我想在不显示确认模式的情况下手动刷新页面。
我尝试过:
onRefreshButtonClick(event) {
event.preventDefault();
window.location.reload();
return true;
}
仍然显示确认模式。有什么方法可以取消/覆盖此功能的确认模式吗?
答案 0 :(得分:1)
您可以简单地引入一个全局布尔变量restrictUnload
,您可以在confirmCloseOrRefresh
函数中进行检查:
var restrictUnload = true;
function confirmCloseOrRefresh() {
if (restrictUnload) {
var confirmMessage = confirm('Are you sure to exit?');
return confirmMessage;
} else {
return true;
}
}
在您的onRefreshButtonClick
函数中,只需将该变量设置为false
:
onRefreshButtonClick(event) {
restrictUnload = false;
event.preventDefault();
window.location.reload();
return true;
}