javascript - 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 规范。'
也许这就是我失败的原因。但是真的没有解决办法吗?
解决方案
您可以尝试使用该window.confirm(msg)
功能。
https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm
将它与对象beforeunload
上的事件结合使用window
:
推荐阅读
- javascript - 弹出窗口和 aria-live 的可访问性问题
- ssas - MDX 查询更改列标题
- javascript - 计算来自选定父级的 AJAX 调用中返回的结果
- azure - 为 Azure DevOps 配置自托管 ARM 代理时出错
- perl - Perl:cpan PDL 安装问题
- r - 如何使用单个数据框使用 2 个 y 轴进行绘图,该数据框具有 7 个具有广泛值的变量?
- c# - DataGridView 不显示 MySQL 表中的数据
- python-3.x - [错误]:使用 Python3 执行多线程脚本时出现 threading.Thread() 问题
- node.js - 使用 Sinon-Chai 测试 Node JS Express 路由中具有多个回调的单个回调被调用
- postgresql - 如果查询有 WHERE 子句,则 Sequelize 原始查询返回空数组