page event
页面生命周期:DOMContentLoaded,load,beforeunload,unload
DOMContentLoaded
浏览器已完全加载 HTML,并构建了 DOM 树,但像 img 和样式表之类的外部资源可能尚未加载完成。
function ready() {alert('DOM is ready');// 图片目前尚未加载完成(除非已经被缓存),所以图片的大小为 0x0alert(`Image size: ${img.offsetWidth}x${img.offsetHeight}`);}document.addEventListener("DOMContentLoaded", ready);
load
浏览器不仅加载完成了 HTML,还加载完成了所有外部资源:图片,样式等
window.addEventListener("load", function() {// Code to be executed after the page has finished loading// For example, manipulating DOM elements, making API calls, etc.// Accessing and manipulating DOM elementsvar element = document.getElementById("myElement");element.innerHTML = "Page loaded successfully!";// Making API calls or performing other actions});
beforeunload
beforeunload 事件在页面即将被卸载(关闭、刷新、导航到其他页面等场景)之前触发, 当用户正在离开页面时, 我们可以检查用户是否保存了更改,并询问他是否真的要离开。
window.addEventListener("beforeunload", (event) => {// 可以在这里提示用户保存未保存的数据,或离开前确认提示event.preventDefault();// Prompt the confirmation messageevent.returnValue = ""; // Some browsers require a non-empty string// Return the confirmation message//由于安全问题,window.onbeforeunload 已经不能自定义提示信息了,下面设置信息也是没用的return "Are you sure you want to leave this page 是否确认离开?";});
unload
用户几乎已经离开了,但是我们仍然可以启动一些操作,例如发送统计数据。
window.addEventListener("unload", function() {alert(`unload event triggered`)});
default content, the text should be changed to "Page loaded successfully!"