window.onunload

概述

WindowEventHandlers 的混入特性 onunload 是 EventHandler  处理 unload 事件的方法。该事件在关闭窗口资源和内容的时候触发。页面资源的清除工作会在 unload  事件之后进行。

注意事项: 具备弹窗阻止功能的浏览器会忽略 onunload  事件回调中调用的 Window.open() 方法。

onunload 特性(乃至 unload 事件本身) 并非使用 sendBeacon()的正确途径,要调用 sendBeacon() 接口,应当使用 visibilitychange 和 pagehide 事件。 参见 Beacon API is broken

语法

window.addEventListener("unload", function(event) { ... });
window.onunload = function(event) { ... };

通常而言,我们推荐使用 window.addEventListener() 来监听 unload 事件,而不是直接给 onunload 赋值。

例子

<html>
<head>

<title>onunload test</title>

<script type="text/javascript">

window.onunload = unloadPage;

function unloadPage()
{
 alert("unload event detected!");
}
</script>
</head>

<body>
<p>Reload a new page into the browser<br />
 to fire the unload event for this page.</p>
<p>You can also use the back or forward buttons<br />
 to load a new page and fire this event.</p>
</body>
</html>

规范

DOM Level 0 不属于任何标准.

浏览器兼容性

BCD tables only load in the browser

在 Firefox 1.5 中,页面使用此事件处理程序会阻止浏览器在 bfcache 内存中缓存页面(译者注:翻译可能没有达意,请对照英文原文)。详细信息请参阅使用 Firefox 1.5:缓存