好的,首先,您在 s 上缺少引号,因此它根本alert
不应该提醒。
为了解决您的实际问题,您正在调用该函数,而不仅仅是声明它。
(function (){
alert();
}())
(你也写beforeonunload
。这是不正确的。应该是onbeforeunload
)
这会创建一个匿名函数并立即调用它。它们在 JavaScript 中通常称为 IIFE。要添加事件处理程序,您必须传递对函数的引用。所以这里正确的方法是这样的:
window.onunload = function () {
alert("In unload");
};
window.onbeforeunload = function () {
alert("In unload");
};
在您的情况下,分配给事件的是undefined
,因为您的匿名函数没有return
任何作用。如果它return
具有功能,它将完美地工作。
Chrome 倾向于阻止 onunload 和 onbeforeunload 警报,因为这些通常是垃圾网站,试图阻止用户离开。然而,一个console.log
完美的作品。检查演示。打开控制台,单击运行,因为当您单击运行时,代码会刷新,框架会重新加载,并且您会在页面被卸载之前触发事件,然后再次加载。