【问题标题】:brower/tab close show confirmation like "Exit" and "cancel"浏览器/标签关闭显示确认,如“退出”和“取消”
【发布时间】:2018-08-17 17:23:34
【问题描述】:

当用户离开选项卡/或浏览器关闭时显示确认框,如“继续”或“退出”。

我也尝试了 window.onUnload 事件,但没有工作。

但是这个事件只调用了一次。第二轮它不执行该功能

var areYouReallySure = false;
var internalLink = false;
var allowPrompt = true;

function areYouSure() {
  if (allowPrompt) {
    if (!areYouReallySure && !internalLink && true) {
      areYouReallySure = true;
      var ConfMsg = "click Cancel"
      return ConfMsg;
    }
  } else {
    allowPrompt = true;
  }
  //}
}
//var allowPrompt = true;
window.onbeforeunload = areYouSure;

如何为重新加载和取消按钮编码,出现提示?

【问题讨论】:

  • 您确定该函数没有再次被调用吗? areYouSure 中的代码将阻止它再次返回 ConfMessage
  • 是的@John。第二次它不再执行,只去 onbeforeunload 行。

标签: javascript jquery


【解决方案1】:

onbeforeunload 函数将在您尝试关闭选项卡而不是单击按钮时调用。

在您的代码中,当您使用此 areYouReallySure 变量时。所以首先是false,所以它可以工作,但是在你在if条件内设置为true之后。这就是为什么它不起作用的原因,因为第二次没有返回任何东西。

window.onbeforeunload = funcRef
  • funcRef 是对函数或函数表达式的引用。
  • 该函数应为 Event 对象的 returnValue 属性分配一个字符串值并返回相同的字符串。

WindowEventHandlers.onbeforeunload 事件处理程序属性包含发送beforeunload 时执行的代码。此事件在窗口即将卸载其资源时触发。文档仍然可见,事件仍然可以取消。


代码片段

//This function will call on before close tab
function areYouSure() {
  return "You have made changes, are you sure you would like to navigate away from the page?"
}

window.onbeforeunload = areYouSure;

【讨论】:

  • 如何为重新加载和取消按钮编写代码,提示时出现?
  • 重新加载可以使用location.reload(),取消只会关闭提示框。你能详细解释一下你到底需要什么吗?
  • 点击重新加载按钮时,我想调用“注销按钮”事件。在取消按钮上 - 页面上没有变化。在重新加载按钮上,我想清除所有会话也注销当前用户。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多