首页 > 解决方案 > JavaScript:关闭浏览器时如何提示自定义消息框?

问题描述

问题:

我是 JavaScript 新手。
当我的用户关闭浏览器时,我想给一个消息,比如“你今天有 xxx 作品!” 。我 在浏览器关闭之前搜索了 google/stackoverflow 并在 Prompt User 中获得了一些解决方案?

但是,当我尝试如下代码时,它只显示浏览器的默认消息,而不是我的。我该如何解决?

代码:

function test(evt) {
    var message = 'Did you remember to download your form?';
    if (typeof evt == 'undefined') {
        evt = window.event;
    }
    if (evt) {
        evt.returnValue = message;
    }
    return message;
}

是否有一些对我有用的 API 或解决方案?

编辑(2021.9.22) 我尝试@NiceBooks 发布的提示,例如

window.addEventListener('beforeunload', function (e) {
    window.alert("ready to exit");
    window.confirm("just a test");
    e.returnValue = '';
});

IE 和 FireFox 提示它们的默认消息。如果没有设置e.returnValue,当我点击退出按钮时没有提示框。beforeunload说:

'在某些浏览器中,在此事件期间可能会忽略对 window.alert()、window.confirm() 和 window.prompt() 的调用。有关更多详细信息,请参阅 HTML 规范。'

也许这就是我失败的原因。但是真的没有解决办法吗?

标签: javascript

解决方案


您可以尝试使用该window.confirm(msg)功能。

https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm

将它与对象beforeunload上的事件结合使用window

在 MDN 中卸载之前


推荐阅读