javascript - 在浏览器关闭之前提示用户?

标签 javascript popup browser-close

我们有一个管理门户,我们的老师经常忘记在注销和/或关闭浏览器窗口之前下载他们最新的 PDF 说明。我环顾四周,但找不到我要找的东西。

我想实现以下目标:

目标 1

在用户关闭浏览器窗口之前,系统会提示他们“您记得下载表单吗?”有两个选项,是/否。如果是,关闭,如果不是,返回页面。

目标 2

在用户单击“注销”按钮之前,系统会提示他们与上述相同。

我第一次通过非常基本的代码(不适用于关闭浏览器)是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript">
function init() {
    if (window.addEventListener) {
        window.addEventListener("beforeunload", unloadMess, false);
    } else if (window.onbeforeunload) {
        window.onbeforeunload = unloadMess;
    };
}

function unloadMess() {
    var User_Message = "[Your user message here]"
    return User_Message;
}
</script>
</head>

<body onload="init();">
     hello this is my site
</body>
</html>

编辑 - 新问题

下面提供的解决方案有效,但也有其自身的问题:

当用户单击链接以实际下载表单时,页面会认为他们正在尝试离开并反过来向他们显示错误消息!另外-我希望发生一个事件或另一个事件,但不一定同时发生。 IE。他们点击“注销”按钮,他们会看到 OnClick 事件,然后是浏览器提示。有任何想法吗?

最佳答案

2017 年更新

所有现代浏览器不再支持自定义消息。

window.onbeforeunload = function(evt) {
   return true;
}

这个用于关闭选项卡:
window.onbeforeunload = function(evt) {
    var message = 'Did you remember to download your form?';
    if (typeof evt == 'undefined') {
        evt = window.event;
    }
    if (evt) {
        evt.returnValue = message;
    }

    return message;
}

并使用 onClick注销按钮的事件:
onClick="return confirm('Did you remember to download your form?');"

关于javascript - 在浏览器关闭之前提示用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2923139/

相关文章:

ms-access - 模态弹出窗口导致崩溃

javascript - 使用 OnBeforeUnload 事件刷新浏览器

javascript - 当用户关闭浏览器窗口时发送ajax

javascript - 带有 flexbox 和 react 的轮播( slider )

javascript - 如何将函数从 Controller 连接到指令

javascript - 通用的 createPopup() 替代品?

用于固定导航栏的 Javascript 和 Jquery 在在线时停止工作(网络服务器)

javascript - 在 Codeigniter 端访问 Ajax POST 变量时出现问题

css - 使用 css 固定位置弹出窗口的问题