事件参考

事件的触发用于通知“对变化感兴趣”的代码以影响代码的执行。这些事件可能来自用户的交互(例如:使用鼠标或调整窗口大小)、底层环境状态的改变(例如:电池电量不足或操作系统的媒体事件)和其他的情况。

每个事件都使用继承自 Event 接口的对象来表示,可以包括额外的自定义成员属性及函数,以获取事件发生时相关的更多信息。本文为每个事件都提供了一个表格(靠近顶部的区域),其中包含了指向相关事件接口的链接和其他相关的信息。事件 > 基于 Event 的接口中完整地列出了不同的事件类型。

本文提供了你可能感兴趣的主要事件类型(动画、剪切板、worker 等等)的索引,以及实现这些事件的主要的类。

事件索引

事件类型 描述 文档
动画

Web Animation API 相关的事件。

用于响应动画状态的改变(例如:动画的开始或结束)。

DocumentWindowHTMLElement 上触发的事件。
异步数据获取

与数据获取相关的事件。

AbortSignalXMLHttpRequestFileReader 上触发的事件。
剪切板

Clipboard API 相关的事件。

用于在内容被剪切、复制或粘贴时发出通知。

DocumentElementWindow 上触发的事件。
合成(Composition)

与文本输入相关的事件;“间接”输入文本(而不是直接使用常规的键盘输入)。

例如,使用语音转文字的引擎,或使用特殊的组合键以将键入的内容表示成另一种语言中的字符。

Element 上触发的事件。
CSS 过渡

CSS 过渡相关的事件。

当 CSS 过渡开始、停止或取消等事件发生时发出通知。

DocumentHTMLElementWindow 上触发的事件。
数据库

与数据库操作相关的事件:打开、关闭、事务、错误,等等。

IDBDatabaseIDBOpenDBRequestIDBRequestIDBTransaction 上触发的事件。
DOM 突变

与文档对象模型(DOM)层次结构和节点的修改相关的事件。

警告: 突变事件已被弃用。请使用 MutationObserver 代替。

拖放、滚轮

与使用 HTML 拖放 API滚轮事件相关的事件。

拖动和滚轮事件派生自鼠标事件。虽然它们在使用鼠标滚轮和拖放时触发,但它们也可以和其他合适的硬件一起使用。

拖放事件在 Document 上触发。

滚轮事件在 Element 上触发。

焦点

与元素获得和失去焦点相关的事件。

ElementWindow 上触发的事件。
表单

与创建、重置和提交表单相关的事件。

HTMLFormElement 上触发。
全屏

Fullscreen API 相关的事件。

用于在全屏和窗口模式切换或切换期间发生错误时发送通知。

DocumentElement 上触发的事件。
游戏手柄(Gamepad)

Gamepad API 相关的事件。

Window 上触发的事件。
手势

建议使用 Touch 事件来实现手势。

DocumentElement 上触发的事件。

此外还有一些非标准的手势事件:

History

History API 相关的事件。

Window 上触发的事件。
HTML 元素内容显示管理

与显示或文本元素状态的改变相关的事件。

HTMLDetailsElementHTMLDialogElementHTMLSlotElement 上触发的事件。
输入

与 HTML input 元素(如:<input><select><textarea>)相关的事件。

HTMLElementHTMLInputElement 上触发的事件。
键盘

与使用键盘相关的事件。

用于在按键向上、向下或仅仅只是按下时发出通知。

DocumentElement 上触发的事件。
加载/卸载文档

在加载或卸载文档时触发的事件。

DocumentWindow 上触发的事件。

清单

与安装渐进式 web 应用清单相关的事件。

Window 上触发的事件
媒体

与媒体使用(包括媒体捕捉与媒体流 APIWeb Audio API画中画 API,等等)相关的事件。

ScriptProcessorNodeHTMLMediaElementAudioTrackListAudioScheduledSourceNodeMediaRecorderMediaStreamMediaStreamTrackVideoTrackListHTMLTrackElementOfflineAudioContextTextTrackTextTrackListElement/audio, Element/video 上触发的事件。
消息传递

与窗口从另一个浏览上下文接受消息相关的事件。

Window 上触发的事件。
鼠标

计算机鼠标相关的事件。

用于在鼠标单机、双击、释放、按下、右击、移入移除元素/文本、选择等动作时发出通知。

指针事件为鼠标事件提供了与硬件无关的代替方案。拖放和滚轮事件派生自鼠标事件。

Element 上触发的事件。
网络连接

与获得和失去网络连接相关的事件。

Window 上触发的事件。

NetworkInformation网络状况 API)上触发的事件。

支付

支付请求 API 相关的事件。

PaymentRequestPaymentResponse 上触发的事件。

性能

与任何性能相关的规范分组为 Performance API 的相关事件。

Performance 上触发的事件。

指针

指针事件 API 相关的事件。

提供来自指针设备(包括鼠标、触控、笔/触控笔)的与硬件无关的通知。

DocumentHTMLElement 上触发的事件。
打印

与打印相关的事件。

Window 上触发的事件。
Promise rejection

在任意 JavaScript promise 被拒绝时,发送到全局脚本上下文的事件。

Window 上触发的事件。
网络套接字

WebSockets API 相关的事件。

Websocket 上触发的事件。
SVG

与 SVG 图像相关的事件。

SVGElementSVGAnimationElementSVGGraphicsElement 上触发的事件。

文本选择

与选择文本相关的 Selection API 事件。

事件(selectionchange)在 HTMLTextAreaElementHTMLInputElement 上触发。

触控

Touch Events API 相关的事件。

在与触控屏交互(例如:用手指或触控笔)时发出通知。与 Force Touch API 无关。

DocumentElement 上触发的事件。
虚拟现实

WebXR Device API 相关的事件。

警告: WebVR API(和关联的 Window 事件)已被弃用。

XRSystemXRSessionXRReferenceSpace 上触发的事件。
RTC(实时通信)

WebRTC API 相关的事件。

RTCDataChannelRTCDTMFSenderRTCIceTransportRTCPeerConnection 上触发的事件。
Server-sent 事件

server sent events API 相关的事件。

EventSource 上触发的事件。
语音合成

Web Speech API 相关的事件。

SpeechSynthesisUtterance 上触发的事件。
Worker

Web Workers APIService Worker APIBroadcast Channel APIChannel Messaging API 相关的事件。

用于相应新消息和消息发送的错误。Service worker 还可以收到其他事件的通知,包括推送通知、用户单击显示的通知 push 订阅失效、从内容索引中删除条目,等等。

ServiceWorkerGlobalScopeDedicatedWorkerGlobalScopeSharedWorkerGlobalScopeWorkerGlobalScopeWorkerBroadcastChannelMessagePort 上触发的事件。

规范

Specification
HTML Standard
# events-2