--- title: window.onunload slug: Web/API/WindowEventHandlers/onunload translation_of: Web/API/WindowEventHandlers/onunload original_slug: Web/API/Window/onunload ---

{{ ApiRef("HTML DOM") }}

概述

{{domxref("WindowEventHandlers")}} 的混入特性 onunload 是 {{event("Event_handlers", "event handler")}}  处理 {{Event("unload")}} 事件的方法。该事件在关闭窗口资源和内容的时候触发。页面资源的清除工作会在 unload  事件之后进行。

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

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

语法

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

通常而言,我们推荐使用 {{domxref("EventTarget.addEventListener", "window.addEventListener()")}} 来监听 {{event("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>

规范

{{ DOM0() }}

{{ languages( {"en": "en/DOM/window.onunload" } ) }}

浏览器兼容性

{{Compat("api.WindowEventHandlers.onunload")}}

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