Element

Element is the most general base class from which all element objects (i.e. objects that represent elements) in a Document inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from Element. For example, the HTMLElement interface is the base interface for HTML elements, while the SVGElement interface is the basis for all SVG elements. Most functionality is specified further down the class hierarchy.

Languages outside the realm of the Web platform, like XUL through the XULElement interface, also implement Element.

Properties

Inherits properties from its parent interface, Node, and by extension that interface's parent, EventTarget. It implements the properties of ParentNode, ChildNode, NonDocumentTypeChildNode, and Animatable.

Element.attributes Read only
Returns a NamedNodeMap object containing the assigned attributes of the corresponding HTML element.
Element.classList Read only
Returns a DOMTokenList containing the list of class attributes.
Element.className
Is a DOMString representing the class of the element.
Element.clientHeight Read only
Returns a Number representing the inner height of the element.
Element.clientLeft Read only
Returns a Number representing the width of the left border of the element.
Element.clientTop Read only
Returns a Number representing the width of the top border of the element.
Element.clientWidth Read only
Returns a Number representing the inner width of the element.
Element.computedName Read only
Returns a DOMString containing the label exposed to accessibility.
Element.computedRole Read only
Returns a DOMString containing the ARIA role that has been applied to a particular element.
Element.id
Is a DOMString representing the id of the element.
Element.innerHTML
Is a DOMString representing the markup of the element's content.
Element.localName Read only
A DOMString representing the local part of the qualified name of the element.
Element.namespaceURI Read only
The namespace URI of the element, or null if it is no namespace.

Note: In Firefox 3.5 and earlier, HTML elements are in no namespace. In later versions, HTML elements are in the http://www.w3.org/1999/xhtml namespace in both HTML and XML trees.

NonDocumentTypeChildNode.nextElementSibling Read only
Is an Element, the element immediately following the given one in the tree, or null if there's no sibling node.
Element.outerHTML
Is a DOMString representing the markup of the element including its content. When used as a setter, replaces the element with nodes parsed from the given string.
Element.part
Represents the part identifier(s) of the element (i.e. set using the part attribute), returned as a DOMTokenList.
Element.prefix Read only
A DOMString representing the namespace prefix of the element, or null if no prefix is specified.
NonDocumentTypeChildNode.previousElementSibling Read only
Is a Element, the element immediately preceding the given one in the tree, or null if there is no sibling element.
Element.scrollHeight Read only
Returns a Number representing the scroll view height of an element.
Element.scrollLeft
Is a Number representing the left scroll offset of the element.
Element.scrollLeftMax Read only
Returns a Number representing the maximum left scroll offset possible for the element.
Element.scrollTop
A Number representing number of pixels the top of the document is scrolled vertically.
Element.scrollTopMax Read only
Returns a Number representing the maximum top scroll offset possible for the element.
Element.scrollWidth Read only
Returns a Number representing the scroll view width of the element.
Element.shadowRootRead only
Returns the open shadow root that is hosted by the element, or null if no open shadow root is present.
Element.openOrClosedShadowRoot Read only
Returns the shadow root that is hosted by the element, regardless if its open or closed. Available only to WebExtensions.
Element.slot
Returns the name of the shadow DOM slot the element is inserted in.
Element.tabStop
Is a Boolean indicating if the element can receive input focus via the tab key.
Element.tagName Read only
Returns a String with the name of the tag for the given element.
Element.undoManager Read only
Returns the UndoManager associated with the element.
Element.undoScope
Is a Boolean indicating if the element is an undo scope host, or not.

Note: DOM Level 3 defined namespaceURI, localName and prefix on the Node interface. In DOM4 they were moved to Element.

This change is implemented in Chrome since version 46.0 and Firefox since version 48.0.

Properties included from Slotable

The Element interface includes the following property, defined on the Slotable mixin.

Slotable.assignedSlotRead only
Returns a HTMLSlotElement representing the <slot> the node is inserted in.

Event handlers

Element.onfullscreenchange
An event handler for the fullscreenchange event, which is sent when the element enters or exits full-screen mode. This can be used to watch both for successful expected transitions, but also to watch for unexpected changes, such as when your app is running in the background.
Element.onfullscreenerror
An event handler for the fullscreenerror event, which is sent when an error occurs while attempting to change into full-screen mode.

Methods

Inherits methods from its parents Node, and its own parent, EventTarget, and implements those of ParentNode, ChildNode, NonDocumentTypeChildNode, and Animatable.

EventTarget.addEventListener()
Registers an event handler to a specific event type on the element.
Element.attachShadow()
Attaches a shadow DOM tree to the specified element and returns a reference to its ShadowRoot.
Element.animate()
A shortcut method to create and run an animation on an element. Returns the created Animation object instance.
Element.closest()
Returns the Element which is the closest ancestor of the current element (or the current element itself) which matches the selectors given in parameter.
Element.createShadowRoot()
Creates a shadow DOM on on the element, turning it into a shadow host. Returns a ShadowRoot.
Element.computedStyleMap()
Returns a StylePropertyMapReadOnly interface which provides a read-only representation of a CSS declaration block that is an alternative to CSSStyleDeclaration.
EventTarget.dispatchEvent()
Dispatches an event to this node in the DOM and returns a Boolean that indicates whether no handler canceled the event.
Element.getAnimations()
Returns an array of Animation objects currently active on the element.
Element.getAttribute()
Retrieves the value of the named attribute from the current node and returns it as an Object.
Element.getAttributeNames()
Returns an array of attribute names from the current element.
Element.getAttributeNS()
Retrieves the value of the attribute with the specified name and namespace, from the current node and returns it as an Object.
Element.getBoundingClientRect()
Returns the size of an element and its position relative to the viewport.
Element.getClientRects()
Returns a collection of rectangles that indicate the bounding rectangles for each line of text in a client.
Element.getElementsByClassName()
Returns a live HTMLCollection that contains all descendants of the current element that possess the list of classes given in the parameter.
Element.getElementsByTagName()
Returns a live HTMLCollection containing all descendant elements, of a particular tag name, from the current element.
Element.getElementsByTagNameNS()
Returns a live HTMLCollection containing all descendant elements, of a particular tag name and namespace, from the current element.
Element.hasAttribute()
Returns a Boolean indicating if the element has the specified attribute or not.
Element.hasAttributeNS()
Returns a Boolean indicating if the element has the specified attribute, in the specified namespace, or not.
Element.hasAttributes()
Returns a Boolean indicating if the element has one or more HTML attributes present.
Element.hasPointerCapture()
Indicates whether the element on which it is invoked has pointer capture for the pointer identified by the given pointer ID.
Element.insertAdjacentElement()
Inserts a given element node at a given position relative to the element it is invoked upon.
Element.insertAdjacentHTML()
Parses the text as HTML or XML and inserts the resulting nodes into the tree in the position given.
Element.insertAdjacentText()
Inserts a given text node at a given position relative to the element it is invoked upon.
Element.matches()
Returns a Boolean indicating whether or not the element would be selected by the specified selector string.
Element.pseudo()
Returns a CSSPseudoElement representing the child pseudo-element matched by the specified pseudo-element selector.
Element.querySelector()
Returns the first Node which matches the specified selector string relative to the element.
Element.querySelectorAll()
Returns a NodeList of nodes which match the specified selector string relative to the element.
Element.releasePointerCapture()
Releases (stops) pointer capture that was previously set for a specific pointer event.
ChildNode.remove()
Removes the element from the children list of its parent.
Element.removeAttribute()
Removes the named attribute from the current node.
Element.removeAttributeNS()
Removes the attribute with the specified name and namespace, from the current node.
EventTarget.removeEventListener()
Removes an event listener from the element.
Element.requestFullscreen()
Asynchronously asks the browser to make the element full-screen.
Element.requestPointerLock()
Allows to asynchronously ask for the pointer to be locked on the given element.
Element.scroll()
Scrolls to a particular set of coordinates inside a given element.
Element.scrollBy()
Scrolls an element by the given amount.
Element.scrollIntoView()
Scrolls the page until the element gets into the view.
Element.scrollTo()
Scrolls to a particular set of coordinates inside a given element.
Element.setAttribute()
Sets the value of a named attribute of the current node.
Element.setAttributeNS()
Sets the value of the attribute with the specified name and namespace, from the current node.
Element.setCapture()
Sets up mouse event capture, redirecting all mouse events to this element.
Element.setPointerCapture()
Designates a specific element as the capture target of future pointer events.
Element.toggleAttribute()
Toggles a boolean attribute, removing it if it is present and adding it if it is not present, on the specified element.

Obsolete methods

Element.getAttributeNode()
Retrieves the node representation of the named attribute from the current node and returns it as an Attr.
Element.getAttributeNodeNS()
Retrieves the node representation of the attribute with the specified name and namespace, from the current node and returns it as an Attr.
Element.removeAttributeNode()
Removes the node representation of the named attribute from the current node.
Element.setAttributeNode()
Sets the node representation of the named attribute from the current node.
Element.setAttributeNodeNS()
Sets the node representation of the attribute with the specified name and namespace, from the current node.

Events

Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.

cancel
Fires on a <dialog> when the user instructs the browser that they wish to dismiss the current open dialog. For example, the browser might fire this event when the user presses the Esc key or clicks a "Close dialog" button which is part of the browser's UI.
Also available via the oncancel property.
error
Fired when a resource failed to load, or can't be used. For example, if a script has an execution error or an image can't be found or is invalid.
Also available via the onerror property.
scroll
Fired when the document view or an element has been scrolled.
Also available via the onscroll property.
select
Fired when some text has been selected.
Also available via the onselect property.
show
Fired when a contextmenu event was fired on/bubbled to an element that has a contextmenu attribute.
Also available via the onshow property.
wheel
Fired when the user rotates a wheel button on a pointing device (typically a mouse).
Also available via the onwheel property.

Clipboard events

copy
Fired when the user initiates a copy action through the browser's user interface.
Also available via the oncopy property.
cut
Fired when the user initiates a cut action through the browser's user interface.
Also available via the oncut property.
paste
Fired when the user initiates a paste action through the browser's user interface.
Also available via the onpaste property.

Composition events

compositionend
Fired when a text composition system such as an input method editor completes or cancels the current composition session.
compositionstart
Fired when a text composition system such as an input method editor starts a new composition session.
compositionupdate
Fired when a new character is received in the context of a text composition session controlled by a text composition system such as an input method editor.

Focus events

blur
Fired when an element has lost focus.
Also available via the onblur property.
focus
Fired when an element has gained focus.
Also available via the onfocus property
focusin
Fired when an element is about to gain focus.
focusout
Fired when an element is about to lose focus.

Fullscreen events

fullscreenchange
Sent to an Element when it transitions into or out of full-screen mode.
Also available via the onfullscreenchange property.
fullscreenerror
Sent to an Element if an error occurs while attempting to switch it into or out of full-screen mode.
Also available via the onfullscreenerror property.

Keyboard events

keydown
Fired when a key is pressed.
Also available via the onkeydown property.
keypress
Fired when a key that produces a character value is pressed down.
Also available via the onkeypress property.
keyup
Fired when a key is released.
Also available via the onkeyup property.

Mouse events

auxclick
Fired when a non-primary pointing device button (e.g., any mouse button other than the left button) has been pressed and released on an element.
Also available via the onauxclick property.
click
Fired when a pointing device button (e.g., a mouse's primary button) is pressed and released on a single element.
Also available via the onclick property.
contextmenu
Fired when the user attempts to open a context menu.
Also available via the oncontextmenu property.
dblclick
Fired when a pointing device button (e.g., a mouse's primary button) is clicked twice on a single element.
Also available via the ondblclick property.
DOMActivate
Occurs when an element is activated, for instance, through a mouse click or a keypress.
mousedown
Fired when a pointing device button is pressed on an element.
Also available via the onmousedown property.
mouseenter
Fired when a pointing device (usually a mouse) is moved over the element that has the listener attached.
Also available via the onmouseenter property.
mouseleave
Fired when the pointer of a pointing device (usually a mouse) is moved out of an element that has the listener attached to it.
Also available via the onmouseleave property.
mousemove
Fired when a pointing device (usually a mouse) is moved while over an element.
Also available via the onmousemove property.
mouseout
Fired when a pointing device (usually a mouse) is moved off the element to which the listener is attached or off one of its children.
Also available via the onmouseout property.
mouseover
Fired when a pointing device is moved onto the element to which the listener is attached or onto one of its children.
Also available via the onmouseover property.
mouseup
Fired when a pointing device button is released on an element.
Also available via the onmouseup property.
webkitmouseforcechanged
Fired each time the amount of pressure changes on the trackpadtouchscreen.
webkitmouseforcedown
Fired after the mousedown event as soon as sufficient pressure has been applied to qualify as a "force click".
webkitmouseforcewillbegin
Fired before the mousedown event.
webkitmouseforceup
Fired after the webkitmouseforcedown event as soon as the pressure has been reduced sufficiently to end the "force click".

Touch events

touchcancel
Fired when one or more touch points have been disrupted in an implementation-specific manner (for example, too many touch points are created).
Also available via the ontouchcancel property.
touchend
Fired when one or more touch points are removed from the touch surface.
Also available via the ontouchend property
touchmove
Fired when one or more touch points are moved along the touch surface.
Also available via the ontouchmove property
touchstart
Fired when one or more touch points are placed on the touch surface.
Also available via the ontouchstart property

Specifications

Specification Status Comment
CSS Pseudo-Elements Level 4
The definition of 'Element' in that specification.
Working Draft Added the pseudo() method.
Web Animations Working Draft Added the getAnimations() method.
UndoManager and DOMTransaction
The definition of 'Element' in that specification.
Editor's Draft Added the undoScope and undoManager properties.
Pointer Events – Level 2
The definition of 'Element' in that specification.
Recommendation Added the following event handlers: ongotpointercapture and onlostpointercapture.
Added the following methods: setPointerCapture() and releasePointerCapture().
Pointer Events
The definition of 'Element' in that specification.
Obsolete Added the following event handlers: ongotpointercapture and onlostpointercapture.
Added the following methods: setPointerCapture() and releasePointerCapture().
Selectors API Level 1
The definition of 'Element' in that specification.
Obsolete Added the following methods: querySelector() and querySelectorAll().
Pointer Lock
The definition of 'Element' in that specification.
Candidate Recommendation Added the requestPointerLock() method.
Fullscreen API
The definition of 'Element' in that specification.
Living Standard Added the requestFullscreen() method.
DOM Parsing and Serialization
The definition of 'Element' in that specification.
Working Draft Added the following properties: innerHTML, and outerHTML.
Added the following method: insertAdjacentHTML().
CSS Object Model (CSSOM) View Module
The definition of 'Element' in that specification.
Working Draft Added the following properties: scrollTop, scrollLeft, scrollWidth, scrollHeight, clientTop, clientLeft, clientWidth, and clientHeight.
Added the following methods: getClientRects(), getBoundingClientRect(), scroll(), scrollBy(), scrollTo() and scrollIntoView().
Element Traversal Specification
The definition of 'Element' in that specification.
Obsolete Added inheritance of the ElementTraversal interface.
DOM
The definition of 'Element' in that specification.
Living Standard Added the following methods: closest(), insertAdjacentElement() and insertAdjacentText().
Moved hasAttributes() from the Node interface to this one.
DOM4
The definition of 'Element' in that specification.
Obsolete Removed the following methods: setIdAttribute(), setIdAttributeNS(), and setIdAttributeNode().
Modified the return value of getElementsByTagName() and getElementsByTagNameNS().
Removed the schemaTypeInfo property.
Document Object Model (DOM) Level 3 Core Specification
The definition of 'Element' in that specification.
Obsolete Added the following methods: setIdAttribute(), setIdAttributeNS(), and setIdAttributeNode(). These methods were never implemented and have been removed in later specifications.
Added the schemaTypeInfo property. This property was never implemented and has been removed in later specifications.
Document Object Model (DOM) Level 2 Core Specification
The definition of 'Element' in that specification.
Obsolete The normalize() method has been moved to Node.
Document Object Model (DOM) Level 1 Specification
The definition of 'Element' in that specification.
Obsolete Initial definition.

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
ElementChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 8Safari Full support 1.3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0
DOMActivate event
DeprecatedNon-standard
Chrome Full support YesEdge Full support 79Firefox Full support YesIE No support NoOpera No support NoSafari Full support YesWebView Android ? Chrome Android Full support YesFirefox Android Full support YesOpera Android No support NoSafari iOS ? Samsung Internet Android Full support Yes
DOMMouseScroll event
DeprecatedNon-standard
Chrome No support NoEdge No support NoFirefox Full support 1IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 4Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
MozMousePixelScroll event
DeprecatedNon-standard
Chrome No support NoEdge No support ≤18 — 79Firefox Full support YesIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support YesOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
MSGestureChange event
Non-standard
Chrome No support NoEdge No support 12 — 79Firefox No support NoIE Full support 10Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
MSGestureEnd event
Non-standard
Chrome No support NoEdge No support 12 — 79Firefox No support NoIE Full support 10Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
MSGestureHold event
Non-standard
Chrome No support NoEdge No support 12 — 79Firefox No support NoIE Full support 10Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
MSGestureStart event
Non-standard
Chrome No support NoEdge No support 12 — 79Firefox No support NoIE Full support 10Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
MSGestureTap event
Non-standard
Chrome No support NoEdge No support 12 — 79Firefox No support NoIE Full support 10Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
MSInertiaStart event
Non-standard
Chrome No support NoEdge No support 12 — 79Firefox No support NoIE Full support 10Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
MSManipulationStateChanged event
Non-standard
Chrome No support NoEdge No support 12 — 79Firefox No support NoIE Full support YesOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
accessKeyChrome No support No
Notes
No support No
Notes
Notes Implemented on HTMLElement.
Edge No support No
Notes
No support No
Notes
Notes Implemented on HTMLElement.
Firefox ? IE ? Opera No support No
Notes
No support No
Notes
Notes Implemented on HTMLElement.
Safari ? WebView Android No support No
Notes
No support No
Notes
Notes Implemented on HTMLElement.
Chrome Android No support No
Notes
No support No
Notes
Notes Implemented on HTMLElement.
Firefox Android ? Opera Android No support No
Notes
No support No
Notes
Notes Implemented on HTMLElement.
Safari iOS ? Samsung Internet Android No support No
Notes
No support No
Notes
Notes Implemented on HTMLElement.
afterscriptexecute event
Non-standard
Chrome No support NoEdge No support NoFirefox Full support 2IE ? Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 4Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
animate
Experimental
Chrome Full support 36Edge Full support 79Firefox Full support 48IE No support NoOpera Full support 23Safari Full support Yes
Disabled
Full support Yes
Disabled
Disabled This feature is behind the Web Animations preference and the CSS Animations via Web Animations preference.
WebView Android Full support 37Chrome Android Full support 36Firefox Android Full support 48Opera Android Full support 24Safari iOS Full support 13.4Samsung Internet Android Full support 3.0
attachShadowChrome Full support 53Edge Full support 79Firefox Full support 63
Full support 63
No support 59 — 63
Disabled
Disabled From version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 40Safari Full support 10WebView Android Full support 53Chrome Android Full support 53Firefox Android Full support 63
Full support 63
No support 59 — 63
Disabled
Disabled From version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Full support 41Safari iOS Full support 10Samsung Internet Android Full support 6.0
attributesChrome Full support 26Edge Full support 12Firefox Full support 22IE Full support 5.5Opera Full support 8Safari Full support 6WebView Android Full support ≤37Chrome Android Full support 26Firefox Android Full support 22Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 1.5
attributeStyleMapChrome Full support 66Edge Full support ≤79Firefox ? IE ? Opera ? Safari ? WebView Android Full support 66Chrome Android Full support 66Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android Full support 9.0
auxclick eventChrome Full support 55Edge Full support ≤79Firefox Full support 53
Notes
Full support 53
Notes
Notes Starting in Firefox 68, the auxclick event is used to trigger the new tab on middle-click action; previously, this had been done with the click event. Apps can prevent middle-click from opening new tabs (or middle-click to paste, if that feature is enabled) by intercepting auxclick on links, and auxclick event handlers can now open popups without triggering the popup blocker.
IE No support NoOpera Full support 42Safari No support NoWebView Android Full support 55Chrome Android Full support 55Firefox Android Full support 53Opera Android Full support 42Safari iOS No support NoSamsung Internet Android Full support 6.0
beforescriptexecute event
Non-standard
Chrome No support NoEdge No support NoFirefox Full support 2IE ? Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 4Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
blur eventChrome Full support 1Edge Full support 12Firefox Full support 24
Full support 24
No support 6 — 24
Notes
Notes The interface for this event is Event, not FocusEvent.
IE Full support 9Opera Full support 11.6Safari Full support 3.1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 24
Full support 24
No support 6 — 24
Notes
Notes The interface for this event is Event, not FocusEvent.
Opera Android Full support 12.1Safari iOS Full support 2Samsung Internet Android Full support 1.0
classListChrome Full support 8Edge Full support 16
Full support 16
No support 12 — 16
Notes
Notes Not supported for SVG elements.
Firefox Full support 3.6IE Partial support 10
Notes
Partial support 10
Notes
Notes Not supported for SVG elements.
Opera Full support 11.5Safari Full support 6WebView Android Full support ≤37Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 11.5Safari iOS Full support 5Samsung Internet Android Full support 1.0
classNameChrome Full support 43Edge Full support 12Firefox Full support 1IE Full support 8Opera Full support 8Safari Full support 6WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 4.0
click eventChrome Full support 1Edge Full support 12Firefox Full support 6
Notes
Full support 6
Notes
Notes Beginning in Firefox 68, Firefox no longer incorrectly sends a click event for buttons other than the primary mouse button; previouly, there were circumstances in which this would occur. One example: middle-clicking a link would send a click to the document's <html> element.
IE Full support 9Opera Full support 11.6Safari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 6Opera Android Full support 12.1Safari iOS Full support 1Samsung Internet Android Full support 1.0
clientHeightChrome Full support 43Edge Full support 12Firefox Full support 1IE Full support 6Opera Full support 8Safari Full support 6WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 4.0
clientLeftChrome Full support 43Edge Full support 12Firefox Full support 1IE Full support 6Opera Full support 8Safari Full support 6WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 4.0
clientTopChrome Full support 43Edge Full support 12Firefox Full support 1IE Full support 6Opera Full support 8Safari Full support 6WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 4.0
clientWidthChrome Full support 43Edge Full support 12Firefox Full support 1IE Full support 6Opera Full support 8Safari Full support 6WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 4.0
closestChrome Full support 41Edge Full support 15Firefox Full support 35IE No support NoOpera Full support 28Safari Full support 6WebView Android Full support 41Chrome Android Full support 41Firefox Android Full support 35Opera Android Full support 28Safari iOS Full support 9Samsung Internet Android Full support 4.0
compositionend eventChrome Full support YesEdge Full support 12Firefox Full support 9IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android Full support Yes
compositionstart eventChrome Full support YesEdge Full support 12Firefox Full support 9IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android Full support Yes
compositionupdate eventChrome Full support YesEdge Full support 12Firefox Full support 9IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android Full support Yes
computedStyleMap
Experimental
Chrome Full support 66Edge Full support 79Firefox No support NoIE No support NoOpera Full support 53Safari No support NoWebView Android Full support 66Chrome Android Full support 66Firefox Android No support NoOpera Android Full support 47Safari iOS No support NoSamsung Internet Android Full support 9.0
contextmenu eventChrome Full support 1Edge Full support 12Firefox Full support 6IE Full support 9Opera Full support 10.5Safari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 6Opera Android Full support 11.1Safari iOS Full support 1Samsung Internet Android Full support 1.0
copy eventChrome Full support 58Edge Full support ≤18Firefox Full support YesIE Full support YesOpera Full support 45Safari Full support YesWebView Android Full support 58Chrome Android Full support 58Firefox Android Full support YesOpera Android Full support 43Safari iOS Full support YesSamsung Internet Android Full support 7.0
createShadowRoot
DeprecatedNon-standard
Chrome Full support 35
Notes
Full support 35
Notes
Notes In Chrome 45, the ability to have multiple shadow roots was deprecated.
No support 25 — ?
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 79Firefox No support 59 — 61
Disabled
No support 59 — 61
Disabled
Disabled From version 59 until version 61 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No support 29 — 59
Disabled
Disabled From version 29 until version 59 (exclusive): this feature is behind the dom.webcomponents.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 22
Notes
Full support 22
Notes
Notes In Opera 32, the ability to have multiple shadow roots was deprecated.
No support 15 — ?
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari No support NoWebView Android Full support 37
Notes
Full support 37
Notes
Notes In version 45, the ability to have multiple shadow roots was deprecated.
No support ? — ?
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support 35
Notes
Full support 35
Notes
Notes In Chrome 45, the ability to have multiple shadow roots was deprecated.
No support 25 — ?
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android No support 59 — 61
Disabled
No support 59 — 61
Disabled
Disabled From version 59 until version 61 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No support 29 — 59
Disabled
Disabled From version 29 until version 59 (exclusive): this feature is behind the dom.webcomponents.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Full support 22
Notes
Full support 22
Notes
Notes In Opera 32, the ability to have multiple shadow roots was deprecated.
No support 14 — ?
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari iOS No support NoSamsung Internet Android Full support 5.0
Notes
Full support 5.0
Notes
Notes In Samsung Internet 5.0, the ability to have multiple shadow roots was deprecated.
No support 4.0 — ?
Prefixed
Prefixed Implemented with the vendor prefix: webkit
currentStyle
Non-standard
Chrome No support NoEdge No support NoFirefox No support NoIE Full support 6Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
cut eventChrome Full support 58Edge Full support ≤18Firefox Full support YesIE Full support YesOpera Full support 45Safari Full support YesWebView Android Full support 58Chrome Android Full support 58Firefox Android Full support YesOpera Android Full support 43Safari iOS Full support YesSamsung Internet Android Full support 7.0
dblclick eventChrome Full support 1Edge Full support 12Firefox Full support 6
Notes
Full support 6
Notes
Notes Starting in Firefox 68, dblclick events are only sent for the primary mouse button, per the specification.
IE Full support 11Opera Full support 11.6Safari Full support 3WebView Android No support NoChrome Android No support NoFirefox Android Full support 6Opera Android Full support 12.1Safari iOS Full support 1Samsung Internet Android No support No
error eventChrome Full support YesEdge Full support ≤79Firefox Full support YesIE ? Opera ? Safari ? WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android Full support Yes
focus eventChrome Full support 1Edge Full support 12Firefox Full support 24
Full support 24
No support 6 — 24
Notes
Notes The interface for this event is Event, not FocusEvent.
IE Full support 9Opera Full support 11.6Safari Full support 3.1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 24
Full support 24
No support 6 — 24
Notes
Notes The interface for this event is Event, not FocusEvent.
Opera Android Full support 12.1Safari iOS Full support 2Samsung Internet Android Full support 1.0
focusin eventChrome Full support 1Edge Full support 12Firefox Full support 52IE Full support 9Opera Full support 11.6Safari Full support 5WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 52Opera Android Full support 12.1Safari iOS Full support 4.2Samsung Internet Android Full support 1.0
focusout eventChrome Full support 1Edge Full support 12Firefox Full support 52IE Full support 9Opera Full support 11.6Safari Full support 5WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 52Opera Android Full support 12.1Safari iOS Full support 4.2Samsung Internet Android Full support 1.0
fullscreenchange eventChrome Full support 57Edge Full support ≤79Firefox Full support 64
Full support 64
No support 10 — 64
Alternate Name
Alternate Name Uses the non-standard name: mozfullscreenchange
IE ? Opera Full support 44Safari ? WebView Android Full support 57Chrome Android Full support 57Firefox Android Full support 64
Full support 64
No support 10 — 64
Alternate Name
Alternate Name Uses the non-standard name: mozfullscreenchange
Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 7.0
fullscreenerror eventChrome Full support 57Edge Full support ≤79Firefox Full support 64
Full support 64
No support 10 — 64
Alternate Name
Alternate Name Uses the non-standard name: mozfullscreenerror
IE ? Opera Full support 44Safari ? WebView Android Full support 57Chrome Android Full support 57Firefox Android Full support 64
Full support 64
No support 10 — 64
Alternate Name
Alternate Name Uses the non-standard name: mozfullscreenerror
Opera Android Full support 43Safari iOS ? Samsung Internet Android Full support 7.0
gesturechange event
Non-standard
Chrome No support NoEdge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support 9.1WebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS Full support 2Samsung Internet Android No support No
gestureend event
Non-standard
Chrome No support NoEdge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support 9.1WebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS Full support 2Samsung Internet Android No support No
gesturestart event
Non-standard
Chrome No support NoEdge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support 9.1WebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS Full support 2Samsung Internet Android No support No
getAnimations
Experimental
Chrome Full support 79
Disabled
Full support 79
Disabled
Disabled From version 79: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
No support 67 — 79
Notes Disabled
Notes Does not support the subtree option.
Disabled From version 67 until version 79 (exclusive): this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
No support 44 — 67
Notes Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Disabled From version 44 until version 67 (exclusive): this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
No support 38 — 44
Notes Alternate Name Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Alternate Name Uses the non-standard name: getAnimationPlayers
Disabled From version 38 until version 44 (exclusive): this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Edge Full support 79
Disabled
Full support 79
Disabled
Disabled From version 79: this feature is behind the Experimental Web Platform Features preference.
Firefox Full support 75
Full support 75
No support 63 — 75
Disabled
Disabled From version 63 until version 75 (exclusive): this feature is behind the dom.animations-api.getAnimations.enabled preference. To change preferences in Firefox, visit about:config.
No support 48 — 63
Disabled
Disabled From version 48 until version 63 (exclusive): this feature is behind the dom.animations-api.core.enabled preference. To change preferences in Firefox, visit about:config.
No support 40 — 48
Notes Disabled
Notes Does not support the subtree option.
Disabled From version 40 until version 48 (exclusive): this feature is behind the dom.animations-api.core.enabled preference. To change preferences in Firefox, visit about:config.
No support 35 — 40
Notes Alternate Name Disabled
Notes Does not support the subtree option.
Alternate Name Uses the non-standard name: getAnimationPlayers
Disabled From version 35 until version 40 (exclusive): this feature is behind the dom.animations-api.core.enabled preference. To change preferences in Firefox, visit about:config.
No support 33 — 35
Notes Alternate Name Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Alternate Name Uses the non-standard name: getAnimationPlayers
Disabled From version 33 until version 35 (exclusive): this feature is behind the dom.animations-api.core.enabled preference. To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 66
Disabled
Full support 66
Disabled
Disabled From version 66: this feature is behind the Experimental Web Platform Features preference.
No support 54 — 66
Notes Disabled
Notes Does not support the subtree option.
Disabled From version 54 until version 66 (exclusive): this feature is behind the Experimental Web Platform Features preference.
No support 31 — 54
Notes Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Disabled From version 31 until version 54 (exclusive): this feature is behind the Experimental Web Platform Features preference.
No support 25 — 31
Notes Alternate Name Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Alternate Name Uses the non-standard name: getAnimationPlayers
Disabled From version 25 until version 31 (exclusive): this feature is behind the Experimental Web Platform Features preference.
Safari Partial support Partial
Notes Disabled
Partial support Partial
Notes Disabled
Notes Does not support the subtree option.
Disabled This feature is behind the Web Animations preference and the CSS Animations via Web Animations preference.
WebView Android No support NoChrome Android Full support 79
Disabled
Full support 79
Disabled
Disabled From version 79: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
No support 67 — 79
Notes Disabled
Notes Does not support the subtree option.
Disabled From version 67 until version 79 (exclusive): this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
No support 44 — 67
Notes Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Disabled From version 44 until version 67 (exclusive): this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
No support 38 — 44
Notes Alternate Name Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Alternate Name Uses the non-standard name: getAnimationPlayers
Disabled From version 38 until version 44 (exclusive): this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Firefox Android Full support 63
Disabled
Full support 63
Disabled
Disabled From version 63: this feature is behind the dom.animations-api.getAnimations.enabled preference. To change preferences in Firefox, visit about:config.
No support 48 — 63
Disabled
Disabled From version 48 until version 63 (exclusive): this feature is behind the dom.animations-api.core.enabled preference. To change preferences in Firefox, visit about:config.
No support 40 — 48
Notes Disabled
Notes Does not support the subtree option.
Disabled From version 40 until version 48 (exclusive): this feature is behind the dom.animations-api.core.enabled preference. To change preferences in Firefox, visit about:config.
No support 35 — 40
Notes Alternate Name Disabled
Notes Does not support the subtree option.
Alternate Name Uses the non-standard name: getAnimationPlayers
Disabled From version 35 until version 40 (exclusive): this feature is behind the dom.animations-api.core.enabled preference. To change preferences in Firefox, visit about:config.
No support 33 — 35
Notes Alternate Name Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Alternate Name Uses the non-standard name: getAnimationPlayers
Disabled From version 33 until version 35 (exclusive): this feature is behind the dom.animations-api.core.enabled preference. To change preferences in Firefox, visit about:config.
Opera Android Partial support 48
Notes Disabled
Partial support 48
Notes Disabled
Notes Does not support the subtree option.
Disabled From version 48: this feature is behind the Experimental Web Platform Features preference.
No support 32 — 48
Notes Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Disabled From version 32 until version 48 (exclusive): this feature is behind the Experimental Web Platform Features preference.
No support 25 — 32
Notes Alternate Name Disabled
Notes Does not automatically flush pending style changes and does not support the subtree option.
Alternate Name Uses the non-standard name: getAnimationPlayers
Disabled From version 25 until version 32 (exclusive): this feature is behind the Experimental Web Platform Features preference.
Safari iOS Partial support Partial
Notes Disabled
Partial support Partial
Notes Disabled
Notes Does not support the subtree option.
Disabled This feature is behind the Web Animations preference and the CSS Animations via Web Animations preference.
Samsung Internet Android No support No
getAttributeChrome Full support 1Edge Full support 12Firefox Full support 23IE Full support 8Opera Full support 8Safari Full support 1.3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 23Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0
getAttributeNamesChrome Full support 61Edge Full support 18Firefox Full support 45IE No support NoOpera Full support 48Safari Full support 10WebView Android Full support 61Chrome Android Full support 61Firefox Android Full support 45Opera Android Full support 45Safari iOS Full support YesSamsung Internet Android Full support 8.0
getAttributeNodeChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
getAttributeNodeNSChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
getAttributeNSChrome Full support YesEdge Full support 12Firefox Full support Yes
Notes
Full support Yes
Notes
Notes Starting in Firefox 13, null is always returned instead of the empty string, as per the DOM4 specification. Previously, there were cases in which an empty string could be returned.
IE Full support YesOpera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
getBoundingClientRectChrome Full support 2Edge Full support 12Firefox Full support 3IE Full support 4Opera Full support 9.5Safari Full support 6WebView Android Full support ≤37Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 4
Notes
Full support 4
Notes
Notes Safari for iOS will modify the effective viewport based on the user zoom. This results in incorrect values whenever the user has zoomed.
Samsung Internet Android Full support 1.0
getClientRectsChrome Full support 2Edge Full support 12Firefox Full support 3IE Full support 8Opera Full support 9.5Safari Full support 6WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 1.0
getElementsByClassNameChrome Full support 1Edge Full support 18
Full support 18
No support 12 — 18
Notes
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Firefox Full support 3
Notes
Full support 3
Notes
Notes Prior to Firefox 19, this method was returning a NodeList; it was then changed to reflect the change in the spec.
IE Full support 9
Notes
Full support 9
Notes
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Opera Full support 9.5Safari Full support 6WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 1.0
getElementsByTagNameChrome Full support 1
Notes
Full support 1
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
Edge Full support 12Firefox Full support 1
Notes
Full support 1
Notes
Notes Prior to Firefox 19, this method was returning a NodeList; it was then changed to reflect the change in the spec.
IE Full support 5.5Opera Full support 8
Notes
Full support 8
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
Safari Full support 6
Notes
Full support 6
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
WebView Android Full support 1
Notes
Full support 1
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
Chrome Android Full support 18
Notes
Full support 18
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
Firefox Android Full support 4
Notes
Full support 4
Notes
Notes Prior to Firefox 19, this method was returning a NodeList; it was then changed to reflect the change in the spec.
Opera Android Full support 10.1Safari iOS Full support 6
Notes
Full support 6
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
Samsung Internet Android Full support 1.0
Notes
Full support 1.0
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
getElementsByTagNameNSChrome Full support 1
Notes
Full support 1
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
Edge Full support 12Firefox Full support Yes
Notes
Full support Yes
Notes
Notes The behavior of element.getElementsByTagNameNS changed between Firefox 3.5 and Firefox 3.6. In Firefox 3.5 and before, this function would automatically case-fold any queries so that a search for "foo" would match "Foo" or "foo". In Firefox 3.6 and later this function is now case-sensitive so that a query for "foo" will only match "foo" and not "Foo". For more background on this, please see the comment from Henri Sivonen about the change. You can also look at the relevant part of the standard, which states which parts of the API are case-sensitive and which parts aren't.
Notes Prior to Firefox 19, this method was returning a NodeList; it was then changed to reflects the spec change.
IE Full support 5.5Opera Full support Yes
Notes
Full support Yes
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
Safari Full support 6
Notes
Full support 6
Notes
Notes Initially, this method was returning a NodeList; it was then changed to reflect the spec change.
WebView Android Full support YesChrome Android Full support YesFirefox Android Full support Yes
Notes
Full support Yes
Notes
Notes The behavior of element.getElementsByTagNameNS changed between Firefox 3.5 and Firefox 3.6. In Firefox 3.5 and before, this function would automatically case-fold any queries so that a search for "foo" would match "Foo" or "foo". In Firefox 3.6 and later this function is now case-sensitive so that a query for "foo" will only match "foo" and not "Foo". For more background on this, please see the comment from Henri Sivonen about the change. You can also look at the relevant part of the standard, which states which parts of the API are case-sensitive and which parts aren't.
Notes Prior to Firefox 19, this method was returning a NodeList; it was then changed to reflects the spec change.
Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
hasAttributeChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 8Opera Full support 8Safari Full support 6WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 1.0
hasAttributeNSChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
hasAttributesChrome Full support YesEdge Full support 16Firefox Full support Yes
Notes
Full support Yes
Notes
Notes [1] Before Firefox 35, it was implemented on the Node interface.
IE Full support 9Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
hasPointerCaptureChrome Full support 55Edge Full support ≤79Firefox Full support 59
Full support 59
Full support 41
Disabled
Disabled From version 41: 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.
IE ? Opera Full support 42Safari Full support 13WebView Android Full support 55Chrome Android Full support 55Firefox Android No support No
No support No
Full support 41
Disabled
Disabled From version 41: 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.
Opera Android Full support 42Safari iOS Full support 13Samsung Internet Android Full support 6.0
idChrome Full support 42Edge Full support 12Firefox Full support YesIE Full support YesOpera Full support YesSafari Full support 6WebView Android Full support 42Chrome Android Full support 42Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 4.0
innerHTMLChrome Full support 33
Notes
Full support 33
Notes
Notes This API was previously available on the Node API.
Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 8Safari Full support 9WebView Android Full support 4.4
Notes
Full support 4.4
Notes
Notes This API was previously available on the Node API.
Chrome Android Full support 33
Notes
Full support 33
Notes
Notes This API was previously available on the Node API.
Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 9Samsung Internet Android Full support 2.0
Notes
Full support 2.0
Notes
Notes This API was previously available on the Node API.
insertAdjacentElementChrome Full support 1Edge Full support 18
Full support 18
No support 12 — 18
Notes
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Firefox Full support 48IE Full support 8
Notes
Full support 8
Notes
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Opera Full support 8Safari Full support 10WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 48Opera Android Full support 10.1Safari iOS Full support 10Samsung Internet Android Full support 1.0
insertAdjacentHTMLChrome Full support 1Edge Full support 18
Full support 18
No support 12 — 18
Notes
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Firefox Full support 8IE Full support 4
Notes
Full support 4
Notes
Notes Before Internet Explorer 10, throws an "Invalid target element for this operation." error when called on a <table>, <tbody>, <thead>, or <tr> element.
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Opera Full support 8Safari Full support 10WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 8Opera Android Full support 10.1Safari iOS Full support 4Samsung Internet Android Full support 1.0
insertAdjacentTextChrome Full support 1Edge Full support 18
Full support 18
Full support 12
Notes
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Firefox Full support 48IE Full support Yes
Notes
Full support Yes
Notes
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Opera Full support YesSafari Full support 10WebView Android Full support 2.3Chrome Android Full support 18Firefox Android Full support 48Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.0
keydown eventChrome Full support YesEdge Full support ≤18Firefox Full support YesIE ? Opera ? Safari ? WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android Full support Yes
keypress event
Deprecated
Chrome Full support Yes
Notes
Full support Yes
Notes
Notes Chrome does not fire the keypress event for known keyboard shortcuts. Which keyboard shortcuts are known depends on the user's system. Use the keydown event to implement keyboard shortcuts.
Edge Full support ≤18Firefox Full support Yes
Notes
Full support Yes
Notes
Notes As of Firefox 65, the keypress event is no longer fired for non-printable keys, except for the Enter key, and the Shift + Enter and Ctrl + Enter key combinations (these were kept for cross-browser compatibility purposes).
IE ? Opera ? Safari ? WebView Android Full support Yes
Notes
Full support Yes
Notes
Notes Chrome does not fire the keypress event for known keyboard shortcuts. Which keyboard shortcuts are known depends on the user's system. Use the keydown event to implement keyboard shortcuts.
Chrome Android Full support Yes
Notes
Full support Yes
Notes
Notes Chrome does not fire the keypress event for known keyboard shortcuts. Which keyboard shortcuts are known depends on the user's system. Use the keydown event to implement keyboard shortcuts.
Firefox Android Full support Yes
Notes
Full support Yes
Notes
Notes As of Firefox 65, the keypress event is no longer fired for non-printable keys, except for the Enter key, and the Shift + Enter and Ctrl + Enter key combinations (these were kept for cross-browser compatibility purposes).
Opera Android ? Safari iOS ? Samsung Internet Android Full support Yes
Notes
Full support Yes
Notes
Notes Samsung Internet does not fire the keypress event for known keyboard shortcuts. Which keyboard shortcuts are known depends on the user's system. Use the keydown event to implement keyboard shortcuts.
keyup eventChrome Full support YesEdge Full support ≤18Firefox Full support YesIE ? Opera ? Safari ? WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android Full support Yes
localNameChrome Full support 31
Notes
Full support 31
Notes
Notes This API was previously available on the Node API.
Edge Full support 17Firefox Full support 48
Notes
Full support 48
Notes
Notes This API was previously available on the Node API.
IE Full support 9Opera Full support YesSafari Full support 10WebView Android Full support Yes
Notes
Full support Yes
Notes
Notes This API was previously available on the Node API.
Chrome Android Full support 31
Notes
Full support 31
Notes
Notes This API was previously available on the Node API.
Firefox Android Full support 48
Notes
Full support 48
Notes
Notes This API was previously available on the Node API.
Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 2.0
Notes
Full support 2.0
Notes
Notes This API was previously available on the Node API.
matchesChrome Full support 33
Full support 33
Full support 4
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
Edge Full support ≤18
Full support ≤18
Full support ≤18
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
Full support 12
Alternate Name
Alternate Name Uses the non-standard name: msMatchesSelector
Firefox Full support 34
Full support 34
Full support 44
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
Full support 3.6
Notes Alternate Name
Notes Prior to Firefox 4, invalid selector strings caused false to be returned instead of throwing an exception.
Notes See bug 1119718 for removal.
Alternate Name Uses the non-standard name: mozMatchesSelector
IE Full support 9
Alternate Name
Full support 9
Alternate Name
Alternate Name Uses the non-standard name: msMatchesSelector
Opera Full support 21
Full support 21
Full support 15
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
No support 11.5 — 15
Alternate Name
Alternate Name Uses the non-standard name: oMatchesSelector
Safari Full support 7
Full support 7
Full support 5
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
WebView Android Full support 4.4
Full support 4.4
Full support ≤37
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
Chrome Android Full support 33
Full support 33
Full support 18
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
Firefox Android Full support 34
Full support 34
Full support 44
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
Full support 4
Notes Alternate Name
Notes See bug 1119718 for removal.
Alternate Name Uses the non-standard name: mozMatchesSelector
Opera Android Full support 21
Full support 21
Full support 14
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
No support 11.5 — 14
Alternate Name
Alternate Name Uses the non-standard name: oMatchesSelector
Safari iOS Full support 8
Full support 8
Full support 4.2
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
Samsung Internet Android Full support 2.0
Full support 2.0
Full support 1.0
Alternate Name
Alternate Name Uses the non-standard name: webkitMatchesSelector
mousedown eventChrome Full support 2Edge Full support 12Firefox Full support 6IE Full support 9Opera Full support 11.6Safari Full support 4WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 6Opera Android Full support 12.1Safari iOS Full support 3.2Samsung Internet Android Full support 1.0
mouseenter eventChrome Full support 30Edge Full support 12Firefox Full support 10IE Full support 5.5Opera Full support 17Safari Full support 6.1WebView Android Full support ≤37Chrome Android Full support 30Firefox Android Full support 10Opera Android Full support 18Safari iOS Full support 6.1Samsung Internet Android Full support 2.0
mouseleave eventChrome Full support 30Edge Full support 12Firefox Full support 10IE Full support 5.5Opera Full support 17Safari Full support 6.1WebView Android Full support ≤37Chrome Android Full support 30Firefox Android Full support 10Opera Android Full support 18Safari iOS Full support 6.1Samsung Internet Android Full support 2.0
mousemove eventChrome Full support 2Edge Full support 12Firefox Full support 6IE Full support 9Opera Full support 11.6Safari Full support 4WebView Android Full support ≤37Chrome Android Full support 18Firefox Android Full support 6Opera Android Full support 12.1Safari iOS Full support 3.2Samsung Internet Android Full support 1.0
mouseout eventChrome Full support YesEdge Full support 12Firefox Full support YesIE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
mouseover eventChrome Full support 2Edge Full support 12Firefox Full support 6IE Full support 9Opera Full support 9.5Safari Full support 4WebView Android Full support ≤37Chrome Android Full support 18Firefox Android Full support 6Opera Android Full support 10.1Safari iOS Full support 3.2Samsung Internet Android Full support 1.0
mouseup eventChrome Full support 2Edge Full support 12Firefox Full support 6IE Full support 9Opera Full support 11.6Safari Full support 4WebView Android Full support ≤37Chrome Android Full support 18Firefox Android Full support 6Opera Android Full support 12.1Safari iOS Full support 3.2Samsung Internet Android Full support 1.0
mousewheel event
DeprecatedNon-standard
Chrome Full support 31Edge Full support ≤79Firefox No support NoIE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android No support NoOpera Android ? Safari iOS ? Samsung Internet Android ?
msContentZoom event
Non-standard
Chrome No support NoEdge No support 12 — 79Firefox No support NoIE Full support YesOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
nameChrome No support NoEdge No support NoFirefox ? IE ? Opera No support NoSafari ? WebView Android No support NoChrome Android No support NoFirefox Android ? Opera Android No support NoSafari iOS ? Samsung Internet Android No support No
namespaceURIChrome Full support 31
Notes
Full support 31
Notes
Notes This API was previously available on the Node API.
Edge Full support 17Firefox Full support 48
Notes
Full support 48
Notes
Notes This API was previously available on the Node API.
IE ? Opera Full support Yes
Notes
Full support Yes
Notes
Notes This API was previously available on the Node API.
Safari Full support 10WebView Android Full support Yes
Notes
Full support Yes
Notes
Notes This API was previously available on the Node API.
Chrome Android Full support 31
Notes
Full support 31
Notes
Notes This API was previously available on the Node API.
Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 2.0
Notes
Full support 2.0
Notes
Notes This API was previously available on the Node API.
onfullscreenchangeChrome Full support 57Edge Full support ≤79Firefox Full support 64
Full support 64
No support 10 — 65
Alternate Name
Alternate Name Uses the non-standard name: onmozfullscreenchange
IE ? Opera Full support YesSafari ? WebView Android Full support 57Chrome Android Full support 57Firefox Android Full support 64
Full support 64
No support 10 — 65
Alternate Name
Alternate Name Uses the non-standard name: onmozfullscreenchange
Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 7.0
onfullscreenerrorChrome Full support 57Edge Full support ≤79Firefox Full support 64
Full support 64
No support 10 — 65
Alternate Name
Alternate Name Uses the non-standard name: onmozfullscreenerror
IE ? Opera Full support YesSafari ? WebView Android Full support 57Chrome Android Full support 57Firefox Android Full support 64
Full support 64
No support 10 — 65
Alternate Name
Alternate Name Uses the non-standard name: onmozfullscreenerror
Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 7.0
openOrClosedShadowRoot
Non-standard
Chrome No support NoEdge No support NoFirefox Full support 63
Notes
Full support 63
Notes
Notes Available only to WebExtensions.
IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 63
Notes
Full support 63
Notes
Notes Available only to WebExtensions.
Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
outerHTMLChrome Full support 33
Notes
Full support 33
Notes
Notes This API was previously available on the Node API.
Edge Full support 12Firefox Full support 11IE Full support 4Opera Full support 8Safari Full support 9WebView Android Full support 4.4
Notes
Full support 4.4
Notes
Notes This API was previously available on the Node API.
Chrome Android Full support 33
Notes
Full support 33
Notes
Notes This API was previously available on the Node API.
Firefox Android Full support 14Opera Android Full support 10.1Safari iOS Full support 9Samsung Internet Android Full support 2.0
Notes
Full support 2.0
Notes
Notes This API was previously available on the Node API.
overflow event
Non-standard
Chrome No support NoEdge No support NoFirefox Full support YesIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support YesOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
partChrome Full support YesEdge Full support 79Firefox Full support 71
Disabled
Full support 71
Disabled
Disabled From version 71: this feature is behind the layout.css.shadow-parts.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support YesSafari Full support 13.1WebView Android Full support YesChrome Android Full support YesFirefox Android No support NoOpera Android ? Safari iOS Full support 13.4Samsung Internet Android Full support Yes
paste eventChrome Full support 58Edge Full support 12Firefox Full support 22IE Full support 11Opera Full support 45Safari Full support 5WebView Android Full support 58Chrome Android Full support 58Firefox Android Full support 22Opera Android Full support 43Safari iOS Full support 4.2Samsung Internet Android Full support 7.0
prefixChrome Full support 31
Notes
Full support 31
Notes
Notes This API was previously available on the Node API.
Edge Full support 13Firefox Full support 48
Notes
Full support 48
Notes
Notes This API was previously available on the Node API.
IE ? Opera Full support YesSafari Full support 10WebView Android Full support YesChrome Android Full support 31
Notes
Full support 31
Notes
Notes This API was previously available on the Node API.
Firefox Android Full support 48
Notes
Full support 48
Notes
Notes This API was previously available on the Node API.
Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 2.0
Notes
Full support 2.0
Notes
Notes This API was previously available on the Node API.
querySelectorChrome Full support 1Edge Full support 12Firefox Full support 3.5IE Full support 9
Full support 9
Partial support 8
Notes
Notes querySelector() is supported, but only for CSS 2.1 selectors.
Opera Full support 10Safari Full support 3.1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 2Samsung Internet Android Full support 1.0
querySelectorAllChrome Full support 1Edge Full support 12Firefox Full support 3.5IE Full support 9
Full support 9
Partial support 8
Notes
Notes querySelectorAll() is supported, but only for CSS 2.1 selectors.
Opera Full support 10Safari Full support 3.1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 2Samsung Internet Android Full support 1.0
releasePointerCaptureChrome Full support 55Edge Full support 12Firefox Full support 59
Full support 59
Full support 41
Disabled
Disabled From version 41: 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.
IE Full support 11
Full support 11
Full support 10
Prefixed
Prefixed Implemented with the vendor prefix: ms
Opera Full support 42Safari Full support 13WebView Android Full support 55Chrome Android Full support 55Firefox Android No support No
No support No
Full support 41
Disabled
Disabled From version 41: 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.
Opera Android Full support 42Safari iOS Full support 13Samsung Internet Android Full support 6.0
removeAttributeChrome Full support 1Edge Full support 12
Notes
Full support 12
Notes
Notes This function doesn't respect boolean attributes' default values. See bug 12087679.
Firefox Full support 1IE Full support 8Opera Full support 8Safari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0
removeAttributeNodeChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
removeAttributeNSChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
requestFullscreenChrome Full support 69
Full support 69
Full support 15
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 79
Full support 79
Full support 79
Prefixed
Prefixed Implemented with the vendor prefix: webkit
No support 12 — 14
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Full support 64
Full support 64
No support 47 — 65
Disabled
Disabled From version 47 until version 65 (exclusive): this feature is behind the full-screen-api.unprefix.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No support 9 — 65
Notes Alternate Name
Notes Before Firefox 44, Firefox incorrectly allowed elements inside a <frame> or <object> element to request, and to be granted, fullscreen. In Firefox 44 and onwards this has been fixed: only elements in the top-level document or in an <iframe> element with the allowfullscreen attribute can be displayed fullscreen.
Alternate Name Uses the non-standard name: mozRequestFullScreen
IE Full support 11
Prefixed
Full support 11
Prefixed
Prefixed Implemented with the vendor prefix: ms
Opera Full support 58
Full support 58
Full support 15
Prefixed
Prefixed Implemented with the vendor prefix: webkit
No support 12 — 15
Prefixed
Prefixed Implemented with the vendor prefix: o
Safari Full support 6
Prefixed
Full support 6
Prefixed
Prefixed Implemented with the vendor prefix: webkit
WebView Android Full support 69
Full support 69
Full support ≤37
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support 69
Full support 69
Full support 18
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 64
Full support 64
No support 47 — 65
Disabled
Disabled From version 47 until version 65 (exclusive): this feature is behind the full-screen-api.unprefix.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
No support 9 — 65
Notes Alternate Name
Notes Before Firefox 44, Firefox incorrectly allowed elements inside a <frame> or an <object> to request, and to be granted, fullscreen. In Firefox 44 and onwards this has been fixed: only elements in the top-level document or in an <iframe> with the allowfullscreen attribute can be displayed fullscreen.
Alternate Name Uses the non-standard name: mozRequestFullScreen
Opera Android Full support 50
Full support 50
Full support 14
Prefixed
Prefixed Implemented with the vendor prefix: webkit
No support 12 — 14
Prefixed
Prefixed Implemented with the vendor prefix: o
Safari iOS Full support 6
Prefixed Notes
Full support 6
Prefixed Notes
Prefixed Implemented with the vendor prefix: webkit
Notes Only available on iPad, not on iPhone. Shows an overlay button which can not be disabled.
Samsung Internet Android Full support 10.0
Full support 10.0
Full support 1.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit
requestPointerLockChrome Full support Yes
Full support Yes
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 13Firefox Full support 50
Full support 50
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: moz
IE ? Opera Full support YesSafari Full support 10WebView Android Full support Yes
Full support Yes
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android Full support Yes
Full support Yes
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support YesOpera Android Full support YesSafari iOS ? Samsung Internet Android Full support Yes
Full support Yes
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: webkit
runtimeStyle
Non-standard
Chrome No support NoEdge No support NoFirefox No support NoIE Full support 6Opera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
scrollChrome Full support 45Edge Full support 79Firefox Full support 36IE No support NoOpera Full support 32Safari Full support 10WebView Android Full support 45Chrome Android Full support 45Firefox Android Full support 36Opera Android Full support 32Safari iOS No support NoSamsung Internet Android Full support 5.0
scroll eventChrome Full support YesEdge Full support ≤18Firefox Full support YesIE ? Opera ? Safari ? WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android Full support Yes
scrollByChrome Full support 45Edge Full support 79Firefox Full support YesIE No support NoOpera Full support 32Safari Full support 10WebView Android Full support 45Chrome Android Full support 45Firefox Android Full support YesOpera Android Full support 32Safari iOS No support NoSamsung Internet Android Full support 5.0
scrollHeightChrome Full support 4Edge Full support 12Firefox Full support 21
Full support 21
No support 3 — 21
Notes
Notes In Firefox versions prior to 21, when an element's content does not generate a vertical scrollbar, then its scrollHeight property is equal to its clientHeight property. This can mean either the content is too short to require a scrollbar or that the element has a CSS style overflow value of visible (non-scrollable).
IE Full support 5
Notes
Full support 5
Notes
Notes In Internet Explorer 5 through 7, if padding is set, the value of scrollHeight is equal to the sum of the top and bottom padding. This behavior was fixed in Internet Explorer 8.
Opera Full support 8Safari Full support 6WebView Android Full support ≤37Chrome Android Full support 18Firefox Android Full support 21
Full support 21
No support 4 — 21
Notes
Notes In Firefox versions prior to 21, when an element's content does not generate a vertical scrollbar, then its scrollHeight property is equal to its clientHeight property. This can mean either the content is too short to require a scrollbar or that the element has a CSS style overflow value of visible (non-scrollable).
Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 1.0
scrollIntoView
Experimental
Chrome Full support 29Edge Full support 18
Notes
Full support 18
Notes
Notes The only parameter supported is alignToTop.
No support 12 — 18
Notes
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Notes No support for smooth behavior.
Firefox Full support 1IE Full support 8
Notes
Full support 8
Notes
Notes This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.
Notes No support for smooth behavior or center options.
Opera Full support 38Safari Full support 6
Notes
Full support 6
Notes
Notes No support for smooth behavior or center options.
WebView Android Full support ≤37Chrome Android Full support 29Firefox Android Full support 4Opera Android Full support 41Safari iOS Full support 5
Notes
Full support 5
Notes
Notes No support for smooth behavior or center options.
Samsung Internet Android Full support 2.0
scrollIntoViewIfNeeded
Non-standard
Chrome Full support 1Edge Full support 79Firefox No support NoIE No support NoOpera Full support 15Safari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android No support NoOpera Android Full support 14Safari iOS Full support 1Samsung Internet Android Full support 1.0
scrollLeftChrome Full support 43
Notes
Full support 43
Notes
Notes For right-to-left elements, this property uses 0-100 (most left to most right) instead of negative values. See bug 721759.
Edge Full support 12
Notes
Full support 12
Notes
Notes From Edge 79, for right-to-left elements, this property uses 0-100 (most left to most right) instead of negative values. See bug 721759.
Notes Before Edge 79, for right-to-left elements, this property uses 100-0 (most left to most right) instead of negative values.
Firefox Full support 1IE Full support 8
Notes
Full support 8
Notes
Notes For right-to-left elements, this property uses 100-0 (most left to most right) instead of negative values.
Opera Full support 8Safari Full support 6WebView Android Full support 43
Notes
Full support 43
Notes
Notes For right-to-left elements, this property uses 0-100 (most left to most right) instead of negative values. See bug 721759.
Chrome Android Full support 43
Notes
Full support 43
Notes
Notes For right-to-left elements, this property uses 0-100 (most left to most right) instead of negative values. See bug 721759.
Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 4.0
scrollLeftMax
Non-standard
Chrome No support NoEdge No support NoFirefox Full support 16IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 16Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
scrollToChrome Full support 45Edge Full support 79Firefox Full support 36IE No support NoOpera Full support 32Safari Full support 10WebView Android Full support 45Chrome Android Full support 45Firefox Android Full support 36Opera Android Full support 32Safari iOS No support NoSamsung Internet Android Full support 5.0
scrollTopChrome Full support 43Edge Full support 12Firefox Full support 1IE Full support 8Opera Full support 8Safari Full support 6WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 4.0
scrollTopMax
Non-standard
Chrome No support NoEdge No support NoFirefox Full support 16IE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support 16Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
scrollWidthChrome Full support 43Edge Full support 12Firefox Full support YesIE Full support 5
Notes
Full support 5
Notes
Notes In Internet Explorer 5 through 7, if padding is set, the value of scrollWidth is equal to the sum of the left and right padding. This behavior was fixed in Internet Explorer 8.
Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support 43Firefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 4.0
select eventChrome Full support YesEdge Full support ≤18Firefox Full support YesIE ? Opera ? Safari ? WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android Full support Yes
setAttributeChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 5
Notes
Full support 5
Notes
Notes In Internet Explorer 7 and earlier, setAttribute doesn't set styles and removes events when you try to set them.
Opera Full support 8Safari Full support 3WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0
setAttributeNodeChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
setAttributeNodeNSChrome Full support YesEdge Full support 12
Notes
Full support 12
Notes
Notes Returns a ClientRectList with ClientRect objects (which do not contain x and y properties) instead of DOMRect objects.
Firefox Full support YesIE Full support Yes
Notes
Full support Yes
Notes
Notes Returns a ClientRectList with ClientRect objects (which do not contain x and y properties) instead of DOMRect objects.
Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
setAttributeNSChrome Full support YesEdge Full support 12Firefox Full support YesIE ? Opera Full support YesSafari Full support 6WebView Android Full support YesChrome Android Full support YesFirefox Android Full support YesOpera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yes
setCapture
DeprecatedNon-standard
Chrome No support NoEdge No support 12 — 79
Notes
No support 12 — 79
Notes
Notes The retargetToElement parameter to Element.setCapture() was introduced in Edge 5.5.
Firefox Full support YesIE Full support 5
Notes
Full support 5
Notes
Notes The retargetToElement parameter to Element.setCapture() was introduced in Internet Explorer 5.5.
Opera No support NoSafari ? WebView Android No support NoChrome Android No support NoFirefox Android ? Opera Android No support NoSafari iOS ? Samsung Internet Android No support No
setPointerCaptureChrome Full support 55Edge Full support 12Firefox Full support 59
Full support 59
Full support 41
Disabled
Disabled From version 41: 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.
IE Full support 11
Full support 11
Full support 10
Prefixed
Prefixed Implemented with the vendor prefix: ms
Opera Full support 42Safari Full support 13WebView Android Full support 55Chrome Android Full support 55Firefox Android No support No
No support No
Full support 41
Disabled
Disabled From version 41: 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.
Opera Android Full support 42Safari iOS Full support 13Samsung Internet Android Full support 6.0
shadowRootChrome Full support 43Edge Full support 79Firefox Full support 63
Full support 63
No support 59 — 63
Disabled
Disabled From version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 40Safari Full support 10WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 63
Full support 63
No support 59 — 63
Disabled
Disabled From version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Full support 41Safari iOS Full support YesSamsung Internet Android Full support 4.0
show event
Deprecated
Chrome No support NoEdge No support NoFirefox Full support YesIE ? Opera ? Safari ? WebView Android No support NoChrome Android No support NoFirefox Android Full support YesOpera Android ? Safari iOS ? Samsung Internet Android No support No
slotChrome Full support 53Edge Full support ≤79Firefox Full support 63IE ? Opera Full support YesSafari Full support 10WebView Android Full support 53Chrome Android Full support 53Firefox Android Full support 63Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 6.0
tabStop
DeprecatedNon-standard
Chrome Full support 43Edge Full support ≤79Firefox ? IE ? Opera ? Safari ? WebView Android Full support 43Chrome Android Full support 43Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android Full support 4.0
tagNameChrome Full support 43Edge Full support 12Firefox Full support 1IE Full support 8Opera Full support 8Safari Full support 6WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 6Samsung Internet Android Full support 4.0
toggleAttributeChrome Full support 69Edge Full support 18Firefox Full support 63IE No support NoOpera Full support 56Safari Full support 12WebView Android Full support 69Chrome Android Full support 69Firefox Android Full support 63Opera Android Full support 48Safari iOS Full support YesSamsung Internet Android Full support 10.0
touchcancel eventChrome Full support 22Edge Full support 12Firefox Full support 52IE No support NoOpera No support NoSafari No support NoWebView Android Full support YesChrome Android Full support 25Firefox Android Full support 6Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.5
touchend eventChrome Full support 22Edge Full support 12Firefox Full support 52IE No support NoOpera No support NoSafari No support NoWebView Android Full support YesChrome Android Full support 25Firefox Android Full support 6Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.5
touchmove eventChrome Full support 22Edge Full support 12Firefox Full support 52IE No support NoOpera No support NoSafari No support NoWebView Android Full support YesChrome Android Full support 25Firefox Android Full support 6Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.5
touchstart eventChrome Full support 22Edge Full support 12Firefox Full support 52IE No support NoOpera No support NoSafari No support NoWebView Android Full support YesChrome Android Full support 25Firefox Android Full support 6Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.5
underflow event
Non-standard
Chrome No support NoEdge No support NoFirefox Full support YesIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android Full support YesOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support No
webkitmouseforcechanged event
Non-standard
Chrome No support NoEdge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support YesWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS Full support YesSamsung Internet Android No support No
webkitmouseforcedown event
Non-standard
Chrome No support NoEdge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support YesWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS Full support YesSamsung Internet Android No support No
webkitmouseforceup event
Non-standard
Chrome No support NoEdge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support YesWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS Full support YesSamsung Internet Android No support No
webkitmouseforcewillbegin event
Non-standard
Chrome No support NoEdge No support NoFirefox No support NoIE No support NoOpera No support NoSafari Full support YesWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS Full support YesSamsung Internet Android No support No
wheel eventChrome Full support 61Edge Full support 12Firefox Full support 17IE Full support 9
Notes
Full support 9
Notes
Notes Internet Explorer only exposes the wheel event via addEventListener; there is no onwheel attribute on DOM objects. See IE bug 782835.
Opera Full support 48Safari Full support 7WebView Android Full support 61Chrome Android Full support 61Firefox Android Full support 17Opera Android Full support 45Safari iOS Full support 7Samsung Internet Android Full support 8.0

Legend

Full support
Full support
Partial support
Partial support
No support
No support
Compatibility unknown
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.
Uses a non-standard name.
Uses a non-standard name.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.