事件参考
====

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

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

本文提供了你可能感兴趣的主要事件类型（动画、剪切板、worker，等等）的索引，以及实现这些事件的主要的类。最后是所有提供了文档的事件列表。

**备注：** 此页面列出了你会在 web 上遇到的绝大多数常见事件。如果你正在查找一个这里没有列出的事件，请尝试在 MDN 上搜索它的名字、主题或关联的规范。

事件索引
----

| 事件类型 | 描述 | 文档 |
| --- | --- | --- |
| 动画 | 
 与
 Web Animation API 相关的事件。

用于响应动画状态的改变（例如：动画的开始或结束）。 | 
 在
 `Document`、`Window`、`HTMLElement` 上触发的事件。
  |
| 异步数据获取 | 与数据获取相关的事件。 | 
 在
 `AbortSignal`、`XMLHttpRequest`、`FileReader` 上触发的事件。
  |
| 剪切板 | 
 与
 Clipboard API 相关的事件。

用于在内容被剪切、复制或粘贴时发出通知。 | 
 在
 `Document`、`Window`、`HTMLElement` 上触发的事件。
  |
| 文本输入（Composition） | 与文本输入相关的事件；“间接”输入文本（而不是直接使用常规的键盘输入）。
例如，使用语音转文字的引擎，或使用特殊的组合键以将键入的内容表示成另一种语言中的字符。 | 
 在
 `Element` 上触发的事件。
  |
| CSS 变换 | 
 与
 CSS 变换相关的事件。

当 CSS 变换开始、停止或取消等事件发生时发出通知。 | 
 在
 `Document`、`Window`、`HTMLElement` 上触发的事件。
  |
| 数据库 | 与数据库操作相关的事件：打开、关闭、事务、错误，等等。 | 
 在
 `IDBDatabase`、`IDBOpenDBRequest` (en-US)、`IDBRequest`、`IDBTransaction` 上触发的事件。
  |
| DOM 突变 | 与文档对象模型（DOM）层次结构和节点的修改相关的事件。 | 

**警告：**
突变事件 (en-US)已被废弃。请使用 MutationObserver 代替。

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

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


 滚轮事件在
 `Document` (en-US)
 和
 `Element` 上触发。
  |
| 焦点 | 与元素获得和失去焦点相关的事件。 | 
 在
 `Element`、`Window` 上触发的事件。
  |
| 表单 | 与创建、重置和提交表单相关的事件。 | 
 在
 `HTMLFormElement` 上触发。
  |
| 全屏 | 
 与
 Fullscreen API 相关的事件。

用于在全屏和窗口模式切换或切换期间发生错误时发送通知。 | 
 在
 `Document`、`Element` 上触发的事件。
  |
| 游戏手柄（Gamepad） | 
 与
 Gamepad API 相关的事件。
  | 
 在
 `Window` 上触发的事件。
  |
| 手势 | 
 建议使用
 Touch 事件来实现手势。
  | 
 在
 `Document`、`Element` 上触发的事件。

此外还有一些非标准的手势事件：* WebKit 非标准的、在 `Element` 上的事件：
 `gesturestart` 事件 (en-US)、`gesturechange` 事件 (en-US)、`gestureend` 事件 (en-US)。
* IE 非标准的、在 `Element` 上的事件：
 `MSGestureStart`、`MSGestureChange`、`MSGestureEnd`、`MSGestureHold`、`MSGestureTap`。
* Mozilla 已启用/非标准的 touch 事件
 Touch 事件（Mozilla 实验性） (en-US)。
* Firefox 附加组件的鼠标手势事件
 |
| History | 
 与
 History API
 相关的事件。
  | 
 在
 `Window` 上触发的事件。
  |
| HTML 元素内容显示管理 | 与显示或文本元素状态的改变相关的事件。 | 
 在
 `HTMLDetailsElement`、`HTMLDialogElement`、`HTMLSlotElement` 上触发的事件。
  |
| 输入 | 与 HTML input 元素（如：`<input>`、`<select>` 或 `<textarea>`）相关的事件。 | 
 在
 `HTMLElement`、`HTMLInputElement` 上触发的事件。
  |
| 键盘 | 与使用键盘相关的事件。
用于在按键向上、向下或仅仅只是按下时发出通知。 | 
 在
 `Document`、`Element` 上触发的事件。
  |
| 加载/卸载文档 | 在加载或卸载文档时触发的事件。 | 
 在
 `Document` 和
 `Window` 上触发的事件。
  |
| 清单 | 与安装渐进式 web 应用清单相关的事件。 | 
 在
 `Window` 上触发的事件
  |
| 媒体 | 与媒体使用（包括媒体捕捉与媒体流 API、Web Audio API、画中画 API，等等）相关的事件。 | 
 在
 `ScriptProcessorNode`、`HTMLMediaElement`、`AudioTrackList` (en-US)、`AudioScheduledSourceNode`、`MediaRecorder`、`MediaStream`、`MediaStreamTrack`、`VideoTrackList` (en-US)、`HTMLTrackElement` (en-US)、`OfflineAudioContext`、`TextTrack` (en-US)、`TextTrackList` (en-US)、Element/audio,
 Element/video 上触发的事件。
  |
| 消息传递 | 与窗口从另一个浏览上下文接受消息相关的事件。 | 
 在
 `Window` 上触发的事件。
  |
| 鼠标 | 与计算机鼠标相关的事件。
用于在鼠标单机、双击、释放、按下、右击、移入移除元素/文本、选择等动作时发出通知。
指针事件为鼠标事件提供了与硬件无关的代替方案。拖放和滚轮事件派生自鼠标事件。 | 
 在
 `Element` 上触发的事件。
  |
| 网络连接 | 与获得和失去网络连接相关的事件。 | 
 在
 `Window` 上触发的事件。


 在
 `NetworkInformation`（网络状况 API）上触发的事件。
  |
| 支付 | 与支付请求 API 相关的事件。 | 
 在
 `PaymentRequest` (en-US)、`PaymentResponse` (en-US) 上触发的事件。
  |
| 性能 | 
 与
 High Resolution Time API、Navigation Timing API、User Timing API
 和
 Resource Timing API 相关的事件。
  | 
 在
 `Performance` 上触发的事件。
  |
| 指针 | 与指针事件 API 相关的事件。
提供来自指针设备（包括鼠标、触控、笔/触控笔）的与硬件无关的通知。 | 
 在
 `Document`、`HTMLElement` 上触发的事件。
  |
| 打印 | 与打印相关的事件。 | 
 在
 `Window` 上触发的事件。
  |
| Promise rejection | 在任意 JavaScript promise 被拒绝时，发送到全局脚本上下文的事件。 | 
 在
 `Window` 上触发的事件。
  |
| 网络套接字 | 
 与
 WebSockets API 相关的事件。
  | 
 在
 `Websocket` 上触发的事件。
  |
| SVG | 与 SVG 图像相关的事件。 | 
 在
 `SVGElement`、`SVGAnimationElement` (en-US)、`SVGGraphicsElement` 上触发的事件。
  |
| 文本选择 | 与选择文本相关的 Selection API 事件。 | 
 事件（`selectionchange`）在
 `HTMLTextAreaElement` (en-US)、`HTMLInputElement` 上触发。
  |
| 触控 | 
 与
 Touch Events API 相关的事件。


 在与触控屏交互（例如：用手指或触控笔）时发出通知。与
 Force Touch API 无关。
  | 
 在
 `Document`、`Element` 上触发的事件。
  |
| 虚拟现实 | 
 与
 WebXR Device API 相关的事件。


**警告：**
WebVR API（和关联的
 `Window` 事件）已被废弃。

 | 
 在
 `XRSystem` (en-US)、`XRSession` (en-US)、`XRReferenceSpace` (en-US) 上触发的事件。
  |
| RTC（实时通信） | 
 与
 WebRTC API 相关的事件。
  | 
 在
 `RTCDataChannel`、`RTCDTMFSender` (en-US)、`RTCIceTransport` (en-US)、`RTCPeerConnection` 上触发的事件。
  |
| Server-sent 事件 | 
 与
 server sent events API 相关的事件。
  | 
 在
 `EventSource` 上触发的事件。
  |
| 语音合成 | 
 与
 Web Speech API 相关的事件。
  | 
 在
 `SpeechSynthesisUtterance` (en-US) 上触发的事件。
  |
| Worker | 
 与
 Web Workers API、Service Worker API、Broadcast Channel API 和
 Channel Messaging API 相关的事件。


 用于相应新消息和消息发送的错误。Service
 worker 还可以收到其他事件的通知，包括推送通知、用户单击显示的通知 push 订阅失效、从内容索引中删除条目，等等。
  | 
 在
 `ServiceWorkerGlobalScope`、`DedicatedWorkerGlobalScope`、`SharedWorkerGlobalScope` (en-US)、`WorkerGlobalScope` (en-US)、`Worker`、`WorkerGlobalScope` (en-US)、`BroadcastChannel`、`MessagePort` 上触发的事件。
  |

事件列表
----

本节列出了在 MDN 上有自己的参考页面的事件。如果下面没有列出你感兴趣的某个事件，请尝试搜索它的名字、主题或关联的规范。

* `AbortSignal`
    + abort 事件
* `AudioScheduledSourceNode`
    + ended 事件 (en-US)
* `AudioTrackList` (en-US)
    + addtrack 事件 (en-US)
    + change 事件 (en-US)
    + removetrack 事件 (en-US)
* `BroadcastChannel`
    + messageerror 事件
    + message 事件
* `DedicatedWorkerGlobalScope`
    + messageerror 事件 (en-US)
    + message 事件 (en-US)
* `Document`
    + animationcancel 事件 (en-US)
    + animationend 事件 (en-US)
    + animationiteration 事件 (en-US)
    + animationstart 事件 (en-US)
    + copy 事件 (en-US)
    + cut 事件 (en-US)
    + DOMContentLoaded 事件
    + dragend 事件
    + dragenter 事件
    + dragleave 事件
    + dragover 事件
    + dragstart 事件
    + drag 事件
    + drop 事件
    + fullscreenchange 事件
    + fullscreenerror 事件
    + gotpointercapture 事件 (en-US)
    + keydown 事件 (en-US)
    + keypress 事件
    + keyup 事件 (en-US)
    + lostpointercapture 事件 (en-US)
    + paste 事件 (en-US)
    + pointercancel 事件 (en-US)
    + pointerdown 事件 (en-US)
    + pointerenter 事件 (en-US)
    + pointerleave 事件 (en-US)
    + pointerlockchange 事件
    + pointerlockerror 事件 (en-US)
    + pointermove 事件 (en-US)
    + pointerout 事件 (en-US)
    + pointerover 事件 (en-US)
    + pointerup 事件 (en-US)
    + readystatechange 事件
    + scroll 事件
    + selectionchange 事件
    + selectstart 事件
    + touchcancel 事件
    + touchend 事件
    + touchmove 事件
    + touchstart 事件
    + transitioncancel 事件 (en-US)
    + transitionend 事件 (en-US)
    + transitionrun 事件 (en-US)
    + transitionstart 事件 (en-US)
    + visibilitychange 事件
    + wheel 事件 (en-US)
* `Element`
    + afterscriptexecute 事件
    + auxclick 事件
    + beforescriptexecute 事件
    + blur 事件
    + click 事件
    + compositionend 事件
    + compositionstart 事件
    + compositionupdate 事件
    + contextmenu 事件
    + copy 事件
    + cut 事件
    + dblclick 事件
    + DOMActivate 事件
    + DOMMouseScroll 事件 (en-US)
    + error 事件
    + focusin 事件 (en-US)
    + focusout 事件
    + focus 事件
    + fullscreenchange 事件
    + fullscreenerror 事件
    + gesturechange 事件 (en-US)
    + gestureend 事件 (en-US)
    + gesturestart 事件 (en-US)
    + keydown 事件
    + keypress 事件
    + keyup 事件
    + mousedown 事件
    + mouseenter 事件
    + mouseleave 事件
    + mousemove 事件
    + mouseout 事件
    + mouseover 事件
    + mouseup 事件
    + mousewheel 事件
    + msContentZoom 事件
    + MSGestureChange 事件
    + MSGestureEnd 事件
    + MSGestureHold 事件
    + MSGestureStart 事件
    + MSGestureTap 事件
    + MSInertiaStart 事件
    + MSManipulationStateChanged 事件
    + paste 事件
    + scroll 事件
    + select 事件
    + touchcancel 事件
    + touchend 事件
    + touchmove 事件
    + touchstart 事件
    + webkitmouseforcechanged 事件 (en-US)
    + webkitmouseforcedown 事件 (en-US)
    + webkitmouseforceup 事件 (en-US)
    + webkitmouseforcewillbegin 事件 (en-US)
    + wheel 事件
* `EventSource`
    + error 事件
    + message 事件
    + open 事件
* `FileReader`
    + abort 事件
    + error 事件 (en-US)
    + loadend 事件 (en-US)
    + loadstart 事件 (en-US)
    + load 事件
    + progress 事件 (en-US)
* `HTMLCanvasElement`
    + webglcontextcreationerror 事件 (en-US)
    + webglcontextlost 事件
    + webglcontextrestored 事件 (en-US)
* `HTMLDetailsElement`
    + toggle 事件
* `HTMLDialogElement`
    + cancel 事件
    + close 事件
* `HTMLElement`
    + animationcancel 事件
    + animationend 事件
    + animationiteration 事件
    + animationstart 事件
    + beforeinput 事件
    + change 事件
    + gotpointercapture 事件 (en-US)
    + input 事件
    + lostpointercapture 事件 (en-US)
    + pointercancel 事件
    + pointerdown 事件 (en-US)
    + pointerenter 事件 (en-US)
    + pointerleave 事件 (en-US)
    + pointermove 事件 (en-US)
    + pointerout 事件 (en-US)
    + pointerover 事件 (en-US)
    + pointerup 事件 (en-US)
    + transitioncancel 事件 (en-US)
    + transitionend 事件
    + transitionrun 事件 (en-US)
    + transitionstart 事件
* `HTMLFormElement`
    + formdata 事件
    + reset 事件
    + submit 事件
* `HTMLInputElement`
    + invalid 事件
    + search 事件 (en-US)
* `HTMLMediaElement`
    + abort 事件
    + canplaythrough 事件
    + canplay 事件
    + durationchange 事件
    + emptied 事件 (en-US)
    + ended 事件
    + error 事件
    + loadeddata 事件
    + loadedmetadata 事件
    + loadstart 事件
    + pause 事件
    + playing 事件
    + play 事件
    + progress 事件
    + ratechange 事件 (en-US)
    + seeked 事件 (en-US)
    + seeking 事件 (en-US)
    + stalled 事件 (en-US)
    + suspend 事件 (en-US)
    + timeupdate 事件
    + volumechange 事件 (en-US)
    + waiting 事件 (en-US)
* `HTMLSlotElement`
    + slotchange 事件 (en-US)
* `HTMLTrackElement` (en-US)
    + cuechange 事件 (en-US)
* `HTMLVideoElement`
    + enterpictureinpicture 事件
    + leavepictureinpicture 事件
* `IDBDatabase`
    + abort 事件 (en-US)
    + close 事件 (en-US)
    + error 事件 (en-US)
    + versionchange 事件
* `IDBOpenDBRequest` (en-US)
    + blocked 事件 (en-US)
    + upgradeneeded 事件 (en-US)
* `IDBRequest`
    + error 事件 (en-US)
    + success 事件 (en-US)
* `IDBTransaction`
    + abort 事件 (en-US)
    + complete 事件 (en-US)
    + error 事件 (en-US)
* `MediaDevices`
    + devicechange 事件
* `MediaRecorder`
    + error 事件 (en-US)
* `MediaStream`
    + addtrack 事件 (en-US)
    + removetrack 事件 (en-US)
* `MediaStreamTrack`
    + ended 事件 (en-US)
    + mute 事件 (en-US)
    + unmute 事件 (en-US)
* `MessagePort`
    + messageerror 事件 (en-US)
    + message 事件
* `OfflineAudioContext`
    + complete 事件
* `PaymentRequest` (en-US)
    + merchantvalidation 事件 (en-US)
    + paymentmethodchange 事件 (en-US)
    + shippingaddresschange 事件 (en-US)
    + shippingoptionchange 事件 (en-US)
* `PaymentResponse` (en-US)
    + payerdetailchange 事件 (en-US)
* `Performance`
    + resourcetimingbufferfull 事件
* `PictureInPictureWindow`
    + resize 事件 (en-US)
* `RTCDataChannel`
    + bufferedamountlow 事件 (en-US)
    + close 事件 (en-US)
    + closing 事件 (en-US)
    + error 事件 (en-US)
    + message 事件 (en-US)
    + open 事件 (en-US)
* `RTCDtlsTransport` (en-US)
    + error 事件 (en-US)
* `RTCDTMFSender` (en-US)
    + tonechange 事件
* `RTCIceTransport` (en-US)
    + gatheringstatechange 事件 (en-US)
    + selectedcandidatepairchange 事件 (en-US)
    + statechange 事件 (en-US)
* `RTCPeerConnection`
    + addstream 事件
    + connectionstatechange 事件 (en-US)
    + datachannel 事件
    + icecandidateerror 事件 (en-US)
    + icecandidate 事件
    + iceconnectionstatechange 事件 (en-US)
    + icegatheringstatechange 事件 (en-US)
    + negotiationneeded 事件 (en-US)
    + removestream 事件 (en-US)
    + signalingstatechange 事件 (en-US)
    + track 事件
* `ScriptProcessorNode`
    + audioprocess 事件 (en-US)
* `ServiceWorkerContainer`
    + message 事件 (en-US)
* `ServiceWorkerGlobalScope`
    + activate 事件 (en-US)
    + contentdelete 事件 (en-US)
    + install 事件 (en-US)
    + message 事件 (en-US)
    + notificationclick 事件 (en-US)
    + pushsubscriptionchange 事件 (en-US)
    + push 事件 (en-US)
* `SharedWorkerGlobalScope` (en-US)
    + connect 事件 (en-US)
* `SpeechRecognition` (en-US)
    + audioend 事件 (en-US)
    + audiostart 事件 (en-US)
    + end 事件 (en-US)
    + error 事件 (en-US)
    + nomatch 事件 (en-US)
    + result 事件 (en-US)
    + soundend 事件 (en-US)
    + soundstart 事件 (en-US)
    + speechend 事件 (en-US)
    + speechstart 事件 (en-US)
    + start 事件 (en-US)
* `SpeechSynthesis`
    + voiceschanged 事件 (en-US)
* `SpeechSynthesisUtterance` (en-US)
    + boundary 事件 (en-US)
    + end 事件 (en-US)
    + error 事件 (en-US)
    + mark 事件 (en-US)
    + pause 事件 (en-US)
    + resume 事件 (en-US)
    + start 事件 (en-US)
* `SVGAnimationElement` (en-US)
    + beginEvent 事件 (en-US)
    + endEvent 事件 (en-US)
    + repeatEvent 事件 (en-US)
* `SVGElement`
    + abort 事件
    + error 事件 (en-US)
    + load 事件 (en-US)
    + resize 事件
    + scroll 事件
    + unload 事件
* `SVGGraphicsElement`
    + copy 事件 (en-US)
    + cut 事件 (en-US)
    + paste 事件 (en-US)
* `TextTrack` (en-US)
    + cuechange 事件
* `TextTrackList` (en-US)
    + addtrack 事件 (en-US)
    + change 事件 (en-US)
    + removeTrack 事件 (en-US)
* `VideoTrackList` (en-US)
    + addtrack 事件 (en-US)
    + change 事件 (en-US)
    + removetrack 事件 (en-US)
* `VisualViewport`
    + resize 事件 (en-US)
    + scroll 事件 (en-US)
* `WebSocket`
    + close 事件
    + error 事件
    + message 事件
    + open 事件
* `Window`
    + afterprint 事件
    + animationcancel 事件 (en-US)
    + animationend 事件 (en-US)
    + animationiteration 事件 (en-US)
    + animationstart 事件 (en-US)
    + appinstalled 事件
    + beforeprint 事件
    + beforeunload 事件
    + blur 事件
    + copy 事件
    + cut 事件
    + devicemotion 事件
    + deviceorientation 事件
    + error 事件
    + focus 事件
    + gamepadconnected 事件
    + gamepaddisconnected 事件 (en-US)
    + hashchange 事件
    + languagechange 事件 (en-US)
    + load 事件
    + messageerror 事件
    + message 事件
    + offline 事件
    + online 事件
    + orientationchange 事件
    + pagehide 事件
    + pageshow 事件
    + paste 事件
    + popstate 事件
    + rejectionhandled 事件
    + resize 事件
    + storage 事件
    + transitioncancel 事件 (en-US)
    + transitionend 事件 (en-US)
    + transitionrun 事件 (en-US)
    + transitionstart 事件 (en-US)
    + unhandledrejection 事件
    + unload 事件
    + vrdisplayactivate 事件 (en-US)
    + vrdisplayblur 事件 (en-US)
    + vrdisplayconnect 事件 (en-US)
    + vrdisplaydeactivate 事件 (en-US)
    + vrdisplaydisconnect 事件 (en-US)
    + vrdisplayfocus 事件 (en-US)
    + vrdisplaypointerrestricted 事件 (en-US)
    + vrdisplaypointerunrestricted 事件 (en-US)
    + vrdisplaypresentchange 事件 (en-US)
* `Worker`
    + messageerror 事件
    + message 事件
* `WorkerGlobalScope` (en-US)
    + languagechange 事件 (en-US)
* `XMLHttpRequest`
    + abort 事件
    + error 事件
    + loadend 事件
    + loadstart 事件
    + load 事件
    + progress 事件
    + timeout 事件
* `XRReferenceSpace` (en-US)
    + reset 事件 (en-US)
* `XRSession` (en-US)
    + end 事件 (en-US)
    + inputsourceschange 事件 (en-US)
    + selectend 事件 (en-US)
    + selectstart 事件 (en-US)
    + select 事件 (en-US)
    + squeezeend 事件 (en-US)
    + squeezestart 事件 (en-US)
    + squeeze 事件 (en-US)
    + visibilitychange 事件 (en-US)
* `XRSystem` (en-US)
    + devicechange 事件 (en-US)
规范
--

| Specification |
| --- |
| HTML Standard # events-2 |