window 对象支持多种事件监听器,以下是一些常见的事件类型,这些事件可以在 window.addEventListener 中使用:

  1. load - 当整个页面及所有依赖资源(如样式表和图片)完全加载完成后触发。

  2. unload - 当用户离开当前页面时触发。

  3. beforeunload - 当窗口、文档或其资源即将卸载时触发。

  4. resize - 当窗口或框架被调整大小时触发。

  5. scroll - 当用户或代码滚动窗口内容时触发。

  6. error - 当JavaScript运行时发生错误时触发。

  7. online - 当浏览器从离线模式切换到在线模式时触发。

  8. offline - 当浏览器从在线模式切换到离线模式时触发。

  9. focus - 当窗口获得焦点时触发。

  10. blur - 当窗口失去焦点时触发。

  11. hashchange - 当URL的片段标识符(hash)更改时触发。

  12. popstate - 当活动历史记录条目更改时触发。

  13. pageshow - 当浏览器显示页面时触发(无论是否来自缓存)。

  14. pagehide - 当浏览器隐藏页面时触发。

  15. orientationchange - 当设备的方向改变(如从横屏切换到竖屏)时触发。

  16. deviceorientation - 当设备方向发生变化时触发。

  17. devicemotion - 当设备移动时触发。

  18. touchstart - 当用户在触摸屏上触摸元素时触发。

  19. touchmove - 当用户在触摸屏上移动手指时触发。

  20. touchend - 当用户从触摸屏上移开手指时触发。

  21. touchcancel - 当触摸事件被取消时触发。

  22. click - 当用户点击元素时触发。

  23. dblclick - 当用户双击元素时触发。

  24. mousedown - 当用户按下鼠标按钮时触发。

  25. mouseup - 当用户释放鼠标按钮时触发。

  26. mouseover - 当鼠标指针移动到元素上时触发。

  27. mouseout - 当鼠标指针移出元素时触发。

  28. mouseenter - 当鼠标指针进入元素时触发。

  29. mouseleave - 当鼠标指针离开元素时触发。

  30. contextmenu - 当用户尝试打开上下文菜单时触发。

  31. wheel - 当用户使用鼠标滚轮或类似输入设备时触发。

  32. select - 当用户选择文本框(<input> 或 <textarea>)中的文本时触发。

  33. copy - 当用户复制元素中的内容时触发。

  34. cut - 当用户剪切元素中的内容时触发。

  35. paste - 当用户粘贴内容到元素中时触发。

  36. keydown - 当用户按下键盘上的任意键时触发。

  37. keyup - 当用户释放键盘上的键时触发。

  38. keypress - 当用户按下并释放键盘上的键时触发(已废弃)。

  39. dragstart - 当用户开始拖动元素时触发。

  40. drag - 当元素正在拖动时触发。

  41. dragend - 当拖动操作结束时触发。

  42. dragenter - 当拖动的元素进入目标元素时触发。

  43. dragover - 当拖动的元素在目标元素上移动时触发。

  44. dragleave - 当拖动的元素离开目标元素时触发。

  45. drop - 当拖动的元素在目标元素上被释放时触发。

Web API 中定义了大量的不同事件,而且随着新版本的发布,还可能增加更多的事件。以下是一些可能未在上一个列表中提及的其他 window 事件:

  1. animationstart - 当CSS动画开始时触发。

  2. animationend - 当CSS动画完成时触发。

  3. animationiteration - 当CSS动画重复播放时触发。

  4. transitionstart - 当CSS过渡开始时触发。

  5. transitionend - 当CSS过渡完成时触发。

  6. transitionrun - 当CSS过渡实际运行时触发。

  7. transitioncancel - 当CSS过渡被取消时触发。

  8. message - 当通过 window.postMessage 方法接收消息时触发。

  9. messageerror - 当通过 window.postMessage 方法接收到的消息无法被序列化时触发。

  10. storage - 当 localStorage 或 sessionStorage 中的数据被修改时触发。

  11. focusin - 当元素即将获得焦点时触发。

  12. focusout - 当元素即将失去焦点时触发。

  13. fullscreenchange - 当元素进入或退出全屏模式时触发。

  14. fullscreenerror - 当请求全屏模式失败时触发。

  15. pointerlockchange - 当指针锁定状态改变时触发。

  16. pointerlockerror - 当请求指针锁定失败时触发。

  17. readystatechange - 当文档的 readyState 属性改变时触发。

  18. visibilitychange - 当文档的可见性改变时触发(例如,当用户最小化或隐藏浏览器窗口时)。

这些事件覆盖了各种不同的用例,从动画和过渡到消息传递和存储事件。值得注意的是,一些事件可能已经合并或被新的API所取代,因此始终建议查阅最新的Web标准文档以获取最准确的信息。