Beforeunload无法正常工作

Beforeunload not working properly?

本文关键字:工作 常工作 Beforeunload      更新时间:2023-09-26

.html:

<html>
<header>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="js/game.js"></script>
</header>
<body>
heya!
</body>
</html>

.js:

window.onbeforeunload = function() {
    saveData();
}
function saveData() {
    return "HELLO";
}

我也试过:

$(window).unload(function() {
    saveData();
    return true;
});

我发现唯一有效的是放:

<body onbeforeunload="return saveData()">

但即使这样,它也不会显示我的消息("你好",只是显示"你想离开这个页面吗?"(等等。我只想能够在页面关闭之前保存东西,没有警报,但使用警报来尝试。

事件onbeforeunload正常工作。

如果你想询问用户是否想离开页面,你必须返回一些东西:

window.onbeforeunload = function() {
  return saveData();
}

但是,如果你只想在页面离开之前在后台做一些事情,你可以在事件中放入你想要的任何东西,它就会正常工作。看看下面的例子(打开控制台(:

window.onbeforeunload = function() {
  console.log('leaving');
}
<a href='http://www.stackoverflow.com/'>Go to StackOverflow</a>

注意:如果您使用promptalert,某些浏览器将不允许,因为它们对用户来说很突兀。