--- 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:缓存。