手动刷新页面时如何取消浏览器关闭/刷新确认模式?

时间:2018-11-13 19:33:36

标签: javascript

当用户单击带有以下代码的浏览器的刷新或关闭按钮时,我让浏览器显示确认模式:

window.onbeforeunload = confirmCloseOrRefresh;
function confirmCloseOrRefresh() {
   var confirmMessage = confirm('Are you sure to exit?');
   return confirmMessage;
}

现在,我在页面上有一个自定义刷新按钮,我想在不显示确认模式的情况下手动刷新页面。

我尝试过:

onRefreshButtonClick(event) {
   event.preventDefault();
   window.location.reload();
   return true;
}

仍然显示确认模式。有什么方法可以取消/覆盖此功能的确认模式吗?

1 个答案:

答案 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;
}