unload
当文档或一个子资源正在被卸载时,触发 unload 事件。
它在下面两个事件后被触发:
- beforeunload (可取消默认行为的事件)
- pagehide
文档处于以下状态:
- 所有资源仍存在 (图片,iframe 等.)
- 对于终端用户所有资源均不可见
- 界面交互无效 (
window.open,alert,confirm等.) - 错误不会停止卸载文档的过程
请注意unload事件也遵循文档树:父 iframe 会在子 iframe 卸载前卸载 (参考下面的例子).
示例
html
<!doctype html> <html> <head> <title>Parent Frame</title> <script> window.addEventListener("beforeunload", function (event) { console.log("I am the 1st one."); }); window.addEventListener("unload", function (event) { console.log("I am the 3rd one."); }); </script> </head> <body> <iframe src="child-frame.html"></iframe> </body> </html> 下面是 child-frame.html 的内容:
html
<!doctype html> <html> <head> <title>Child Frame</title> <script> window.addEventListener("beforeunload", function (event) { console.log("I am the 2nd one."); }); window.addEventListener("unload", function (event) { console.log("I am the 4th and last one…"); }); </script> </head> <body> ☻ </body> </html> 当父 iframe 被卸载,事件将按 console.log() 消息描述的顺序触发。
规范
| Specification |
|---|
| HTML> # event-unload> |
| HTML> # handler-window-onunload> |