# GlobalEventHandlers

The `GlobalEventHandlers` mixin describes the event handlers common to several interfaces like `HTMLElement`, `Document`, or `Window`. Each of these interfaces can, of course, add more event handlers in addition to the ones listed below.

Note: `GlobalEventHandlers` is a mixin and not an interface; you can't actually create an object of type `GlobalEventHandlers`.

## Properties

This interface doesn't include any properties except for the event handlers listed below.

### Event handlers

These event handlers are defined on the `GlobalEventHandlers` mixin, and implemented by `HTMLElement`, `Document`, `Window`, as well as by `WorkerGlobalScope` for Web Workers.

`GlobalEventHandlers.onabort`
Is an `EventHandler` representing the code to be called when the `abort` event is raised.
`GlobalEventHandlers.onanimationcancel`
An `EventHandler` called when an `animationcancel` event is sent, indicating that a running CSS animation has been canceled.
`GlobalEventHandlers.onanimationend`
An `EventHandler` called when an `animationend` event is sent, indicating that a CSS animation has stopped playing.
`GlobalEventHandlers.onanimationiteration`
An `EventHandler` called when an `animationiteration` event has been sent, indicating that a CSS animation has begun playing a new iteration of the animation sequence.
`GlobalEventHandlers.onanimationstart`
An `EventHandler` called when an `animationstart` event is sent, indicating that a CSS animation has started playing.
`GlobalEventHandlers.onauxclick`
An `EventHandler` called when an `auxclick` event is sent, indicating that a non-primary button has been pressed on an input device (e.g. a middle mouse button).
`GlobalEventHandlers.onblur`
Is an `EventHandler` representing the code to be called when the `blur` event is raised.
`GlobalEventHandlers.onerror`
Is an `OnErrorEventHandler` representing the code to be called when the `error` event is raised.
`GlobalEventHandlers.onfocus`
Is an `EventHandler` representing the code to be called when the `focus` event is raised.
`GlobalEventHandlers.oncancel`
Is an `EventHandler` representing the code to be called when the `cancel` event is raised.
`GlobalEventHandlers.oncanplay`
Is an `EventHandler` representing the code to be called when the `canplay` event is raised.
`GlobalEventHandlers.oncanplaythrough`
Is an `EventHandler` representing the code to be called when the `canplaythrough` event is raised.
`GlobalEventHandlers.onchange`
Is an `EventHandler` representing the code to be called when the `change` event is raised.
`GlobalEventHandlers.onclick`
Is an `EventHandler` representing the code to be called when the `click` event is raised.
`GlobalEventHandlers.onclose`
Is an `EventHandler` representing the code to be called when the `close` event is raised.
`GlobalEventHandlers.oncontextmenu`
Is an `EventHandler` representing the code to be called when the `contextmenu` event is raised.
`GlobalEventHandlers.oncuechange`
Is an `EventHandler` representing the code to be called when the `cuechange` event is raised.
`GlobalEventHandlers.ondblclick`
Is an `EventHandler` representing the code to be called when the `dblclick` event is raised.
`GlobalEventHandlers.ondrag`
Is an `EventHandler` representing the code to be called when the `drag` event is raised.
`GlobalEventHandlers.ondragend`
Is an `EventHandler` representing the code to be called when the `dragend` event is raised.
`GlobalEventHandlers.ondragenter`
Is an `EventHandler` representing the code to be called when the `dragenter` event is raised.
`GlobalEventHandlers.ondragexit`
Is an `EventHandler` representing the code to be called when the `dragexit` event is raised.
`GlobalEventHandlers.ondragleave`
Is an `EventHandler` representing the code to be called when the `dragleave` event is raised.
`GlobalEventHandlers.ondragover`
Is an `EventHandler` representing the code to be called when the `dragover` event is raised.
`GlobalEventHandlers.ondragstart`
Is an `EventHandler` representing the code to be called when the `dragstart` event is raised.
`GlobalEventHandlers.ondrop`
Is an `EventHandler` representing the code to be called when the `drop` event is raised.
`GlobalEventHandlers.ondurationchange`
Is an `EventHandler` representing the code to be called when the `durationchange` event is raised.
`GlobalEventHandlers.onemptied`
Is an `EventHandler` representing the code to be called when the `emptied` event is raised.
`GlobalEventHandlers.onended`
Is an `EventHandler` representing the code to be called when the `ended` event is raised.
`GlobalEventHandlers.ongotpointercapture`

Is an `EventHandler` representing the code to be called when the `gotpointercapture` event type is raised.

`GlobalEventHandlers.oninput`
Is an `EventHandler` representing the code to be called when the `input` event is raised.
`GlobalEventHandlers.oninvalid`
Is an `EventHandler` representing the code to be called when the `invalid` event is raised.
`GlobalEventHandlers.onkeydown`
Is an `EventHandler` representing the code to be called when the `keydown` event is raised.
`GlobalEventHandlers.onkeypress`
Is an `EventHandler` representing the code to be called when the `keypress` event is raised.
`GlobalEventHandlers.onkeyup`
Is an `EventHandler` representing the code to be called when the `keyup` event is raised.
`GlobalEventHandlers.onload`
Is an `EventHandler` representing the code to be called when the `load` event is raised.
`GlobalEventHandlers.onloadeddata`
Is an `EventHandler` representing the code to be called when the `loadeddata` event is raised.
`GlobalEventHandlers.onloadedmetadata`
Is an `EventHandler` representing the code to be called when the `loadedmetadata` event is raised.
`GlobalEventHandlers.onloadend`
Is an `EventHandler` representing the code to be called when the `loadend` event is raised (when progress has stopped on the loading of a resource.)
`GlobalEventHandlers.onloadstart`
Is an `EventHandler` representing the code to be called when the `loadstart` event is raised (when progress has begun on the loading of a resource.)
`GlobalEventHandlers.onlostpointercapture`

Is an `EventHandler` representing the code to be called when the `lostpointercapture` event type is raised.

`GlobalEventHandlers.onmousedown`
Is an `EventHandler` representing the code to be called when the `mousedown` event is raised.
`GlobalEventHandlers.onmouseenter`
Is an `EventHandler` representing the code to be called when the `mouseenter` event is raised.
`GlobalEventHandlers.onmouseleave`
Is an `EventHandler` representing the code to be called when the `mouseleave` event is raised.
`GlobalEventHandlers.onmousemove`
Is an `EventHandler` representing the code to be called when the `mousemove` event is raised.
`GlobalEventHandlers.onmouseout`
Is an `EventHandler` representing the code to be called when the `mouseout` event is raised.
`GlobalEventHandlers.onmouseover`
Is an `EventHandler` representing the code to be called when the `mouseover` event is raised.
`GlobalEventHandlers.onmouseup`
Is an `EventHandler` representing the code to be called when the `mouseup` event is raised.
`GlobalEventHandlers.onmousewheel`
Is an `EventHandler` representing the code to be called when the `mousewheel` event is raised. Deprecated. Use `onwheel` instead.
`GlobalEventHandlers.onwheel`
Is an `EventHandler` representing the code to be called when the `wheel` event is raised.
`GlobalEventHandlers.onpause`
Is an `EventHandler` representing the code to be called when the `pause` event is raised.
`GlobalEventHandlers.onplay`
Is an `EventHandler` representing the code to be called when the `play` event is raised.
`GlobalEventHandlers.onplaying`
Is an `EventHandler` representing the code to be called when the `playing` event is raised.
`GlobalEventHandlers.onpointerdown`
Is an `EventHandler` representing the code to be called when the `pointerdown` event is raised.
`GlobalEventHandlers.onpointermove`
Is an `EventHandler` representing the code to be called when the `pointermove` event is raised.
`GlobalEventHandlers.onpointerup`
Is an `EventHandler` representing the code to be called when the `pointerup` event is raised.
`GlobalEventHandlers.onpointercancel`
Is an `EventHandler` representing the code to be called when the `pointercancel` event is raised.
`GlobalEventHandlers.onpointerover`
Is an `EventHandler` representing the code to be called when the `pointerover` event is raised.
`GlobalEventHandlers.onpointerout`
Is an `EventHandler` representing the code to be called when the `pointerout` event is raised.
`GlobalEventHandlers.onpointerenter`
Is an `EventHandler` representing the code to be called when the `pointerevent` event is raised.
`GlobalEventHandlers.onpointerleave`
Is an `EventHandler` representing the code to be called when the `pointerleave` event is raised.
`GlobalEventHandlers.onpointerlockchange`
Is an `EventHandler` representing the code to be called when the `pointerlockchange` event is raised.
`GlobalEventHandlers.onpointerlockerror`
Is an `EventHandler` representing the code to be called when the `pointerlockerror` event is raised.
`GlobalEventHandlers.onprogress`
Is an `EventHandler` representing the code to be called when the `progress` event is raised.
`GlobalEventHandlers.onratechange`
Is an `EventHandler` representing the code to be called when the `ratechange` event is raised.
`GlobalEventHandlers.onreset`
Is an `EventHandler` representing the code to be called when the `reset` event is raised.
`GlobalEventHandlers.onresize`
Is an `EventHandler` representing the code to be called when the `resize` event is raised.
`GlobalEventHandlers.onscroll`
Is an `EventHandler` representing the code to be called when the `scroll` event is raised.
`GlobalEventHandlers.onseeked`
Is an `EventHandler` representing the code to be called when the `seeked` event is raised.
`GlobalEventHandlers.onseeking`
Is an `EventHandler` representing the code to be called when the `seeking` event is raised.
`GlobalEventHandlers.onselect`
Is an `EventHandler` representing the code to be called when the `select` event is raised.
`GlobalEventHandlers.onselectstart`
Is an `EventHandler` representing the code to be called when the `selectionchange` event is raised, i.e. when the user starts to make a new text selection on a web page.
`GlobalEventHandlers.onselectionchange`
Is an `EventHandler` representing the code to be called when the `selectionchange` event is raised, i.e. when the text selected on a web page changes.
`GlobalEventHandlers.onshow`
Is an `EventHandler` representing the code to be called when the `show` event is raised.
`GlobalEventHandlers.onsort`
Is an `EventHandler` representing the code to be called when the `sort` event is raised.
`GlobalEventHandlers.onstalled`
Is an `EventHandler` representing the code to be called when the `stalled` event is raised.
`GlobalEventHandlers.onsubmit`
Is an `EventHandler` representing the code to be called when the `submit` event is raised.
`GlobalEventHandlers.onsuspend`
Is an `EventHandler` representing the code to be called when the `suspend` event is raised.
`GlobalEventHandlers.ontimeupdate`
Is an `EventHandler` representing the code to be called when the `timeupdate` event is raised.
`GlobalEventHandlers.onvolumechange`
Is an `EventHandler` representing the code to be called when the `volumechange` event is raised.
`GlobalEventHandlers.ontouchcancel`
Is an `EventHandler` representing the code to be called when the `touchcancel` event is raised.
`GlobalEventHandlers.ontouchend`
Is an `EventHandler` representing the code to be called when the `touchend` event is raised.
`GlobalEventHandlers.ontouchmove`
Is an `EventHandler` representing the code to be called when the `touchmove` event is raised.
`GlobalEventHandlers.ontouchstart`
Is an `EventHandler` representing the code to be called when the `touchstart` event is raised.
`GlobalEventHandlers.ontransitioncancel`
An `EventHandler` called when a `transitioncancel` event is sent, indicating that a CSS transition has been cancelled.
`GlobalEventHandlers.ontransitionend`
An `EventHandler` called when a `transitionend` event is sent, indicating that a CSS transition has finished playing.
`GlobalEventHandlers.onwaiting`
Is an `EventHandler` representing the code to be called when the `waiting` event is raised.

## Methods

This interface defines no methods.

## Specifications

Specification Status Comment
Selection API
The definition of 'Extension to GlobalEventHandlers' in that specification.
Working Draft Adds `onselectionchange.`
Pointer Lock
The definition of 'Extension of Document' in that specification.
Candidate Recommendation Adds `onpointerlockchange` and `onpointerlockerror` on `Document`. It is experimentally implemented on `GlobalEventHandlers`.
HTML Living Standard
The definition of 'GlobalEventHandlers' in that specification.
Living Standard No change since the latest snapshot, HTML 5.1.
HTML 5.1
The definition of 'GlobalEventHandlers' in that specification.
Recommendation Snapshot of HTML Living Standard. Added `onsort` since the HTML5 snapshot.
HTML5
The definition of 'GlobalEventHandlers' in that specification.
Recommendation Snapshot of HTML Living Standard. Creation of `GlobalEventHandlers` (properties where on the target before it).

## Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes Yes Yes Yes Yes
`onabort` Yes ? ? ? ? ?
`onanimationcancel` No ?54 ? ? ?
`onanimationend`

Yes

Yes1

? Yes ? ? ?
`onanimationiteration`

Yes

Yes2

?51 ? ? ?
`onanimationstart`

Yes

Yes3

?51 ? ? ?
`onauxclick`55 No53 No Yes No
`onblur` Yes Yes Yes Yes Yes Yes
`oncancel` Yes ? No ? ? ?
`oncanplay` Yes ? Yes ? ? ?
`oncanplaythrough` Yes ? Yes ? ? ?
`onchange` Yes Yes Yes Yes Yes Yes
`onclick` Yes Yes Yes Yes Yes Yes
`onclose` Yes ? Yes ? ? No
`oncontextmenu` Yes Yes Yes ? ? ?
`oncuechange` Yes ? No ? ? ?
`ondblclick` Yes Yes Yes ? ? ?
`ondrag`4 Yes3.510123.1
`ondragend`4 Yes3.510123.1
`ondragenter`4 Yes3.510123.1
`ondragexit` No Yes3.510123.1
`ondragleave`4 Yes3.510123.1
`ondragover`4 Yes3.510123.1
`ondragstart`4 Yes3.510123.1
`ondrop`4 Yes3.510123.1
`ondurationchange` Yes ?3.5 ? ? ?
`onemptied` Yes ?3.5 ? ? ?
`onended` Yes ?3.5 ? ? ?
`onerror` Yes ? Yes ? ? ?
`onfocus` Yes Yes Yes Yes Yes Yes
`ongotpointercapture`57 ? Yes ?44 ?
`oninput` Yes Yes2910 Yes
`oninvalid` Yes ? Yes ? Yes ?
`onkeydown` Yes Yes Yes ? ? ?
`onkeypress` Yes Yes Yes ? ? ?
`onkeyup` Yes Yes Yes ? ? ?
`onload` Yes Yes Yes Yes Yes Yes
`onloadeddata` Yes ?3.5 ? ? ?
`onloadedmetadata` Yes ?3.5 ? ? ?
`onloadend` No No52 No No ?
`onloadstart` Yes41252 Yes Yes4 Yes4
`onlostpointercapture`57 ? Yes ?44 ?
`onmousedown` Yes Yes Yes Yes Yes Yes
`onmouseenter`30 Yes105.517 Yes
`onmouseleave`30 Yes105.517 Yes
`onmousemove` Yes Yes Yes Yes Yes Yes
`onmouseout` Yes Yes Yes Yes Yes Yes
`onmouseover` Yes Yes Yes Yes Yes Yes
`onmouseup` Yes Yes Yes Yes Yes Yes
`onmousewheel` Yes ? No ? ? ?
`onpause` Yes ?3.5 ? ? ?
`onplay` Yes ?3.5 ? ? ?
`onplaying` Yes ?3.5 ? ? ?
`onpointercancel`35 Yes

59

295

11

106

? No
`onpointerdown`35 Yes

59

295

11

107

? No
`onpointerenter`35 Yes

59

295

11

108

? No
`onpointerleave`35 Yes

59

295

11

109

? No
`onpointerlockchange` ? ? ? ? ? ?
`onpointerlockerror` ? ? ? ? ? ?
`onpointermove`35 Yes

59

295

11

1010

? No
`onpointerout`35 Yes

59

295

11

1011

? No
`onpointerover`35 Yes

59

295

11

1012

? No
`onpointerup`35 Yes

59

295

11

1013

? No
`onprogress` Yes ?3.5 ? ? ?
`onratechange` Yes ?3.5 ? ? ?
`onreset` Yes Yes Yes ? ? ?
`onscroll` Yes Yes Yes ? ? ?
`onseeked` Yes ?3.5 ? ? ?
`onseeking` Yes ?3.5 ? ? ?
`onselect` Yes Yes Yes ? ? ?
`onselectionchange` Yes ?

52

4314

Yes ?1.3
`onselectstart` Yes ?

52

4314

Yes ?1.3
`onshow` No ? Yes ? ? ?
`onsort` No ? No ? ? ?
`onstalled` Yes ?3.5 ? ? ?
`onsubmit` Yes Yes Yes Yes Yes Yes
`onsuspend` Yes ?3.6 ? ? ?
`ontimeupdate` Yes ?3.5 ? ? ?
`ontouchcancel`18 ? ? ? ? ?
`ontouchend`18 ? ? ? ? ?
`ontouchmove`18 ? ? ? ? ?
`ontouchstart`18 ? ? ? ? ?
`ontransitioncancel` No ?53 ? ? ?
`ontransitionend` Yes15 ?51 ? ? Yes
`ontransitionrun` No ?53 ? ? ?
`ontransitionstart` No ?53 ? ? ?
`onvolumechange` Yes ?3.5 ? ? ?
`onwaiting` Yes ?3.5 ? ? ?
`onwheel`61 Yes Yes Yes48 Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes Yes Yes Yes ?
`onabort` Yes Yes ? ? ? ? ?
`onanimationcancel` No No ?54 ? ? ?
`onanimationend`

Yes

Yes1

Yes

Yes1

? Yes ? ? ?
`onanimationiteration`

Yes

Yes2

Yes

Yes2

?51 ? ? ?
`onanimationstart`

Yes

Yes3

Yes

Yes3

?51 ? ? ?
`onauxclick` Yes Yes No53 Yes No Yes
`onblur` Yes Yes Yes Yes Yes Yes Yes
`oncancel` Yes Yes ? No ? ? ?
`oncanplay` Yes Yes ? Yes ? ? ?
`oncanplaythrough` Yes Yes ? Yes ? ? ?
`onchange` Yes Yes Yes Yes Yes Yes Yes
`onclick` Yes Yes Yes Yes Yes Yes Yes
`onclose` Yes Yes ? Yes ? No ?
`oncontextmenu` No No ? ? ? ? ?
`oncuechange` Yes Yes ? No ? ? ?
`ondblclick` No No ? ? ? ? ?
`ondrag` No No ? No No No ?
`ondragend` No No ? No No No ?
`ondragenter` No No ? No No No ?
`ondragexit` No No ? No No No ?
`ondragleave` No No ? No No No ?
`ondragover` No No ? No No No ?
`ondragstart` No No ? No No No ?
`ondrop` No No ? No No No ?
`ondurationchange` Yes Yes ?4 ? ? ?
`onemptied` Yes Yes ?4 ? ? ?
`onended` Yes Yes ?4 ? ? ?
`onerror` Yes Yes ? Yes ? ? ?
`onfocus` Yes Yes Yes Yes Yes Yes Yes
`ongotpointercapture`5757 ? Yes44 ? ?
`oninput` Yes Yes Yes Yes Yes Yes ?
`oninvalid` Yes Yes ? Yes Yes ? Yes
`onkeydown` Yes Yes Yes Yes ? ? ?
`onkeypress` Yes Yes Yes Yes ? ? ?
`onkeyup` Yes Yes Yes Yes ? ? ?
`onload` Yes Yes Yes Yes Yes Yes Yes
`onloadeddata` Yes Yes ?4 ? ? ?
`onloadedmetadata` Yes Yes ?4 ? ? ?
`onloadend` No No No52 No ? ?
`onloadstart` Yes4 Yes41252 Yes4 Yes4 Yes4
`onlostpointercapture`5757 ? Yes44 ? ?
`onmousedown` Yes Yes Yes Yes Yes Yes Yes
`onmouseenter` Yes Yes Yes1017 Yes Yes
`onmouseleave` Yes Yes Yes1017 Yes Yes
`onmousemove` Yes Yes Yes Yes Yes Yes Yes
`onmouseout` Yes Yes Yes Yes Yes Yes Yes
`onmouseover` Yes Yes Yes Yes Yes Yes Yes
`onmouseup` Yes Yes Yes Yes Yes Yes Yes
`onmousewheel` ? ? ? No ? ? ?
`onpause` Yes Yes ?4 ? ? ?
`onplay` Yes Yes ?4 ? ? ?
`onplaying` Yes Yes ?4 ? ? ?
`onpointercancel`3535 Yes295 ? No ?
`onpointerdown`3535 Yes295 ? No ?
`onpointerenter`3535 Yes295 ? No ?
`onpointerleave`3535 Yes295 ? No ?
`onpointerlockchange` ? ? ? ? ? ? ?
`onpointerlockerror` ? ? ? ? ? ? ?
`onpointermove`3535 Yes295 ? No ?
`onpointerout`3535 Yes295 ? No ?
`onpointerover`3535 Yes295 ? No ?
`onpointerup`3535 Yes295 ? No ?
`onprogress` Yes Yes ?4 ? ? ?
`onratechange` Yes Yes ?4 ? ? ?
`onreset` Yes Yes Yes Yes ? ? ?
`onscroll` Yes Yes Yes Yes ? ? ?
`onseeked` Yes Yes ?4 ? ? ?
`onseeking` Yes Yes ?4 ? ? ?
`onselect` Yes Yes Yes Yes ? ? ?
`onselectionchange` Yes Yes ?

52

4314

? Yes ?
`onselectstart` Yes Yes ?

52

4314

? Yes ?
`onshow` No No ? Yes ? ? ?
`onsort` No No ? No ? ? ?
`onstalled` Yes Yes ?4 ? ? ?
`onsubmit` Yes Yes Yes Yes Yes Yes Yes
`onsuspend` Yes Yes ?4 ? ? ?
`ontimeupdate` Yes Yes ?4 ? ? ?
`ontouchcancel` Yes Yes ? ? ? ? ?
`ontouchend` Yes Yes ? ? ? ? ?
`ontouchmove` Yes Yes ? ? ? ? ?
`ontouchstart` Yes Yes ? ? ? ? ?
`ontransitioncancel` No No ?53 ? ? ?
`ontransitionend` Yes15 Yes15 ?51 ? Yes ?
`ontransitionrun` No No ?53 ? ? ?
`ontransitionstart` No No ?53 ? ? ?
`onvolumechange` Yes Yes ?4 ? ? ?
`onwaiting` Yes Yes ?4 ? ? ?
`onwheel`6161 Yes Yes48 Yes ?

1. Supported as `onwebkitanimationend`.

2. Supported as `onwebkitanimationiteration`.

3. Supported as `onwebkitanimationstart`.

4. The `loadstart` event is not fired on `<img>` elements.

5. From version 29: this feature is behind the `dom.w3c_pointer_events.enabled` preference (needs to be set to `true`). To change preferences in Firefox, visit about:config.

6. Supported as `onmspointercancel`.

7. Supported as `onmspointerdown`.

8. Supported as `onmspointerenter`.

9. Supported as `onmspointerleave`.

10. Supported as `onmspointermove`.

11. Supported as `onmspointerout`.

12. Supported as `onmspointerover`.

13. Supported as `onmspointerup`.

14. From version 43: this feature is behind the `dom.select_events.enabled` preference (needs to be set to `true`). To change preferences in Firefox, visit about:config.

15. Supported as `onwebkittransitionend`.

## Document Tags and Contributors

Tags:
Last updated by: sideshowbarker,