问题:
我是JavaScript新手。我想传达一个信息,比如";你今天有xxx个作品&">
当我的用户关闭broswer时。我在谷歌/stackoverflow上搜索了一些解决方案是否在浏览器关闭前提示用户?
但是,当我尝试以下代码时,它只显示broswer的默认消息,而不是我的。我该如何解决?
代码:
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.confrm()和window.prompt()的调用。有关详细信息,请参阅HTML规范
也许这就是我失败的原因。但真的没有解决方案吗?
您可以尝试使用window.confirm(msg)
函数。
https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm
将其与window
对象上的beforeunload
事件一起使用:
在MDN 中加载之前
尝试此操作,在head
标记中输入以下代码。
<script>
const beforeUnloadListener = (event) => {
event.preventDefault();
return event.returnValue = "Are you sure you want to exit?";
};
//this piece of code will trigger a pupup message
addEventListener("beforeunload", beforeUnloadListener, {capture: true});
</script>
希望这能有所帮助。