html页面构建时触发的事件

164 阅读2分钟

在页面构建和解析的过程中,浏览器会触发一系列的事件,这些事件允许开发者在页面加载的不同阶段执行特定的代码。以下是一些主要的事件及其触发时机:

  1. DOMContentLoaded
  • 当HTML文档被完全加载和解析完成之后,不包括样式表、图片和其他资源,浏览器会触发 DOMContentLoaded 事件。
  • 这个事件标志着DOM树已经构建完成,可以进行DOM操作。
  1. readystatechange
  • 文档的 readyState 属性会在文档的加载过程中改变,可以是 loadinginteractivecomplete 等值。
  • 每当 readyState 改变时,readystatechange 事件都会被触发。
  1. load
  • 当整个页面包括所有依赖的资源(如图片、样式表、JavaScript文件等)完全加载后,浏览器会触发 load 事件。
  • 这个事件通常用于初始化页面功能,因为它确保了页面的所有资源都已就绪。
  1. beforeunload/unload
  • 当用户离开当前页面时(例如关闭标签页或导航到另一个页面),beforeunload 事件会被触发,允许开发者提供离开页面前的确认。
  • unload 事件在页面即将卸载时触发,但在这个事件中不能进行任何延迟卸载的操作。
  1. error
  • 如果在加载文档或其资源(如图片、样式表、脚本等)时发生错误,error 事件会被触发。
  1. abort
  • 如果文档或资源的加载被用户或浏览器中断(例如用户点击了停止按钮),abort 事件会被触发。
  1. resize
  • 当浏览器窗口或框架的大小改变时,resize 事件会被触发。
  1. scroll
  • 当文档或元素滚动时,scroll 事件会被触发。
  1. hashchange
  • 当当前URL的哈希部分(即URL中的 # 后面的部分)发生变化时,hashchange 事件会被触发。
  1. popstate
  • 当会话历史(session history)的当前状态被改变时(例如通过 history.pushStatehistory.replaceState),popstate 事件会被触发。
  1. pageshow/pagehide
  • 当页面进入或离开视图时(例如用户通过浏览器的前进或后退操作),pageshowpagehide 事件会被触发。

这些事件为开发者提供了丰富的钩子,以便在页面生命周期的不同阶段执行代码。开发者可以根据需要监听这些事件,并在适当的时机执行相应的逻辑。