我有这段代码:
(function() {
window.onbeforeunload = function () {
alert("hi")
console.log("unloading");
};
})();
我也有这段代码:
window.addEventListener("beforeunload", function() {
alert("hi")
console.log("unloading")
});
它们似乎都不起作用。我想要做的就是在用户试图离开页面时进行记录,但这并没有发生(最新的Chrome,最新的Firefox,Edge ......),任何人都可以了解它为什么会这样做不工作?
答案 0 :(得分:1)
自2011年5月25日起,HTML5规范声明要调用 window.alert(),window.confirm()和window.prompt()方法可能是 在此活动期间被忽略。有关更多信息,请参阅HTML5规范 细节。 另请注意,各种移动浏览器会忽略事件的结果 (也就是说,他们不会要求用户确认)。 Firefox有一个 在about:config中隐藏的偏好做同样的事情。本质上这个 表示用户始终确认可以卸载文档。
此外,使用return
语句在离开之前提示用户
window.addEventListener("beforeunload", function() {
return "hi";
});
答案 1 :(得分:0)
这样做:
window.onbeforeunload = function (e) {
console.log("unloading");
return "Hi";
};
当页面卸载时会发出警告Hi
并在控制台中打印unloading
答案 2 :(得分:0)
function myFunction() {
return "Write something clever here...";
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body onbeforeunload="return myFunction()">
</body>
&#13;
答案 3 :(得分:0)
你必须从onbeforeunload返回:
(function() {
window.onbeforeunload = function () {
alert("hi")
console.log("unloading");
return null;
};
})();