Web/API/Element

From Get docs


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 4The definition of 'Element' in that specification. Working Draft Added the pseudo() method.
Web Animations Working Draft Added the getAnimations() method.
UndoManager and DOMTransactionThe definition of 'Element' in that specification. Editor's Draft Added the undoScope and undoManager properties.
Pointer Events – Level 2The definition of 'Element' in that specification. Recommendation Added the following event handlers: ongotpointercapture and onlostpointercapture.

Added the following methods: setPointerCapture() and releasePointerCapture().

Pointer EventsThe 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 1The definition of 'Element' in that specification. Obsolete Added the following methods: querySelector() and querySelectorAll().
Pointer LockThe definition of 'Element' in that specification. Candidate Recommendation Added the requestPointerLock() method.
Fullscreen APIThe definition of 'Element' in that specification. Living Standard Added the requestFullscreen() method.
DOM Parsing and SerializationThe 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 ModuleThe 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 SpecificationThe definition of 'Element' in that specification. Obsolete Added inheritance of the ElementTraversal interface.
DOMThe 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.

DOM4The 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 SpecificationThe 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 SpecificationThe definition of 'Element' in that specification. Obsolete The normalize() method has been moved to Node.
Document Object Model (DOM) Level 1 SpecificationThe definition of 'Element' in that specification. Obsolete Initial definition.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
Element Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 1

IE

Full support 4

Opera

Full support 8

Safari

Full support 1.3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

DOMActivate event

Deprecated'Non-standard'

Chrome

Full support Yes

Edge

Full support 79

Firefox

Full support Yes

IE

No support No

Opera

No support No

Safari

Full support Yes

WebView Android

?

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

No support No

Safari iOS

?

Samsung Internet Android

Full support Yes

DOMMouseScroll event

Deprecated'Non-standard'

Chrome

No support No

Edge

No support No

Firefox

Full support 1

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support 4

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

MozMousePixelScroll event

Deprecated'Non-standard'

Chrome

No support No

Edge

No support ≤18 — 79

Firefox

Full support Yes

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support Yes

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

MSGestureChange event

Non-standard'

Chrome

No support No

Edge

No support 12 — 79

Firefox

No support No

IE

Full support 10

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

MSGestureEnd event

Non-standard'

Chrome

No support No

Edge

No support 12 — 79

Firefox

No support No

IE

Full support 10

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

MSGestureHold event

Non-standard'

Chrome

No support No

Edge

No support 12 — 79

Firefox

No support No

IE

Full support 10

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

MSGestureStart event

Non-standard'

Chrome

No support No

Edge

No support 12 — 79

Firefox

No support No

IE

Full support 10

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

MSGestureTap event

Non-standard'

Chrome

No support No

Edge

No support 12 — 79

Firefox

No support No

IE

Full support 10

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

MSInertiaStart event

Non-standard'

Chrome

No support No

Edge

No support 12 — 79

Firefox

No support No

IE

Full support 10

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

MSManipulationStateChanged event

Non-standard'

Chrome

No support No

Edge

No support 12 — 79

Firefox

No support No

IE

Full support Yes

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

afterscriptexecute event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

Full support 2

IE

?

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support 4

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

animate

Experimental'

Chrome

Full support 36

Edge

Full support 79

Firefox

Full support 48

IE

No support No

Opera

Full support 23

Safari Full support 13.1


Full support 13.1


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 37

Chrome Android

Full support 36

Firefox Android

Full support 48

Opera Android

Full support 24

Safari iOS

Full support 13.4

Samsung Internet Android

Full support 3.0

attachShadow Chrome

Full support 53

Edge

Full support 79

Firefox 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 No

Opera

Full support 40

Safari

Full support 10

WebView Android

Full support 53

Chrome Android

Full support 53

Firefox 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 41

Safari iOS

Full support 10

Samsung Internet Android

Full support 6.0

attributes Chrome

Full support 26

Edge

Full support 12

Firefox

Full support 22

IE

Full support 5.5

Opera

Full support 8

Safari

Full support 6

WebView Android

Full support ≤37

Chrome Android

Full support 26

Firefox Android

Full support 22

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 1.5

attributeStyleMap Chrome

Full support 66

Edge

Full support ≤79

Firefox

?

IE

No support No

Opera

?

Safari

?

WebView Android

Full support 66

Chrome Android

Full support 66

Firefox Android

?

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support 9.0

auxclick event Chrome

Full support 55

Edge

Full support ≤79

Firefox 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 No

Opera

Full support 42

Safari

No support No

WebView Android

Full support 55

Chrome Android

Full support 55

Firefox Android

Full support 53

Opera Android

Full support 42

Safari iOS

No support No

Samsung Internet Android

Full support 6.0

beforescriptexecute event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

Full support 2

IE

?

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support 4

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

blur event Chrome

Full support 1

Edge

Full support 12

Firefox Full support 24


Full support 24


No support 6 — 24

Notes'

Notes' The interface for this event is Event, not FocusEvent.

IE

Full support 9

Opera

Full support 11.6

Safari

Full support 3.1

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox 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.1

Safari iOS

Full support 2

Samsung Internet Android

Full support 1.0

classList

Chrome Full support 22


Full support 22


No support 8 — 22

Notes'

Notes' Not supported for SVG elements.

Edge Full support 16


Full support 16


No support 12 — 16

Notes'

Notes' Not supported for SVG elements.

Firefox

Full support 3.6

IE Partial support 10

Notes'

Partial support 10

Notes'

Notes' Not supported for SVG elements.

Opera

Full support 11.5

Safari Full support 6.1


Full support 6.1


No support 6 — 6.1

Notes'

Notes' Not supported for SVG elements.

WebView Android Full support 4.4


Full support 4.4


No support 3 — 4.4

Notes'

Notes' Not supported for SVG elements.

Chrome Android Full support 25


Full support 25


No support 18 — 25

Notes'

Notes' Not supported for SVG elements.

Firefox Android

Full support 4

Opera Android

Full support 11.5

Safari iOS Full support 7


Full support 7


No support 5 — 7

Notes'

Notes' Not supported for SVG elements.

Samsung Internet Android Full support 1.5


Full support 1.5


No support 1.0 — 1.5

Notes'

Notes' Not supported for SVG elements.

className Chrome

Full support 43

Edge

Full support 12

Firefox

Full support 1

IE

Full support 8

Opera

Full support 8

Safari

Full support 6

WebView Android

Full support 43

Chrome Android

Full support 43

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 4.0

click event Chrome

Full support 1

Edge

Full support 12

Firefox 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 9

Opera

Full support 11.6

Safari

Full support 3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 6

Opera Android

Full support 12.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

clientHeight Chrome

Full support 43

Edge

Full support 12

Firefox

Full support 1

IE

Full support 6

Opera

Full support 8

Safari

Full support 6

WebView Android

Full support 43

Chrome Android

Full support 43

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 4.0

clientLeft Chrome

Full support 43

Edge

Full support 12

Firefox

Full support 1

IE

Full support 6

Opera

Full support 8

Safari

Full support 6

WebView Android

Full support 43

Chrome Android

Full support 43

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 4.0

clientTop Chrome

Full support 43

Edge

Full support 12

Firefox

Full support 1

IE

Full support 6

Opera

Full support 8

Safari

Full support 6

WebView Android

Full support 43

Chrome Android

Full support 43

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 4.0

clientWidth Chrome

Full support 43

Edge

Full support 12

Firefox

Full support 1

IE

Full support 6

Opera

Full support 8

Safari

Full support 6

WebView Android

Full support 43

Chrome Android

Full support 43

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 4.0

closest Chrome

Full support 41

Edge

Full support 15

Firefox

Full support 35

IE

No support No

Opera

Full support 28

Safari

Full support 6

WebView Android

Full support 41

Chrome Android

Full support 41

Firefox Android

Full support 35

Opera Android

Full support 28

Safari iOS

Full support 9

Samsung Internet Android

Full support 4.0

compositionend event Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 9

IE

Full support Yes

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support Yes

compositionstart event Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 9

IE

Full support Yes

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support Yes

compositionupdate event Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support 9

IE

Full support Yes

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support Yes

computedStyleMap

Experimental'

Chrome

Full support 66

Edge

Full support 79

Firefox

No support No

IE

No support No

Opera

Full support 53

Safari

No support No

WebView Android

Full support 66

Chrome Android

Full support 66

Firefox Android

No support No

Opera Android

Full support 47

Safari iOS

No support No

Samsung Internet Android

Full support 9.0

contextmenu event Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 6

IE

Full support 9

Opera

Full support 10.5

Safari

Full support 3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 6

Opera Android

Full support 11.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

copy event Chrome

Full support 58

Edge

Full support ≤18

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support 45

Safari

Full support Yes

WebView Android

Full support 58

Chrome Android

Full support 58

Firefox Android

Full support Yes

Opera Android

Full support 43

Safari iOS

Full support Yes

Samsung Internet Android

Full support 7.0

createShadowRoot

Deprecated'Non-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 79

Firefox 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 No

Opera 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 No

WebView 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 No

Samsung 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 No

Edge

No support No

Firefox

No support No

IE

Full support 6

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

cut event Chrome

Full support 58

Edge

Full support ≤18

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support 45

Safari

Full support Yes

WebView Android

Full support 58

Chrome Android

Full support 58

Firefox Android

Full support Yes

Opera Android

Full support 43

Safari iOS

Full support Yes

Samsung Internet Android

Full support 7.0

dblclick event Chrome

Full support 1

Edge

Full support 12

Firefox 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 11

Opera

Full support 11.6

Safari

Full support 3

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support 6

Opera Android

Full support 12.1

Safari iOS

Full support 1

Samsung Internet Android

No support No

error event Chrome

Full support Yes

Edge

Full support ≤79

Firefox

Full support Yes

IE

?

Opera

?

Safari

?

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support Yes

focus event Chrome

Full support 1

Edge

Full support 12

Firefox Full support 24


Full support 24


No support 6 — 24

Notes'

Notes' The interface for this event is Event, not FocusEvent.

IE

Full support 9

Opera

Full support 11.6

Safari

Full support 3.1

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox 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.1

Safari iOS

Full support 2

Samsung Internet Android

Full support 1.0

focusin event Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 52

IE

Full support 9

Opera

Full support 11.6

Safari

Full support 5

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 52

Opera Android

Full support 12.1

Safari iOS

Full support 4.2

Samsung Internet Android

Full support 1.0

focusout event Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 52

IE

Full support 9

Opera

Full support 11.6

Safari

Full support 5

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 52

Opera Android

Full support 12.1

Safari iOS

Full support 4.2

Samsung Internet Android

Full support 1.0

fullscreenchange event

Chrome Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: webkitfullscreenchange

Edge

Full support ≤79

Firefox Full support 64


Full support 64


No support 10 — 64

Alternate Name'

Alternate Name' Uses the non-standard name: mozfullscreenchange

IE

?

Opera

Full support 44

Safari

?

WebView Android Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: webkitfullscreenchange

Chrome Android Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: webkitfullscreenchange

Firefox 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 43

Safari iOS

?

Samsung Internet Android

Full support 7.0

fullscreenerror event

Chrome Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: webkitfullscreenerror

Edge

Full support ≤79

Firefox Full support 64


Full support 64


No support 10 — 64

Alternate Name'

Alternate Name' Uses the non-standard name: mozfullscreenerror

IE

?

Opera

Full support 44

Safari

?

WebView Android Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: webkitfullscreenerror

Chrome Android Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: webkitfullscreenerror

Firefox 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 43

Safari iOS

?

Samsung Internet Android

Full support 7.0

gesturechange event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

No support No

IE

No support No

Opera

No support No

Safari

Full support 9.1

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

Full support 2

Samsung Internet Android

No support No

gestureend event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

No support No

IE

No support No

Opera

No support No

Safari

Full support 9.1

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

Full support 2

Samsung Internet Android

No support No

gesturestart event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

No support No

IE

No support No

Opera

No support No

Safari

Full support 9.1

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

Full support 2

Samsung Internet Android

No support No

getAnimations

Experimental'

Chrome Full support 84


Full support 84


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 84


Full support 84


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 No

Opera Full support 71


Full support 71


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 No

Chrome Android Full support 84


Full support 84


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

getAttribute Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 23

IE

Full support 8

Opera

Full support 8

Safari

Full support 1.3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 23

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

getAttributeNames Chrome

Full support 61

Edge

Full support 18

Firefox

Full support 45

IE

No support No

Opera

Full support 48

Safari

Full support 10.1

WebView Android

Full support 61

Chrome Android

Full support 61

Firefox Android

Full support 45

Opera Android

Full support 45

Safari iOS

Full support 10.3

Samsung Internet Android

Full support 8.0

getAttributeNode Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

getAttributeNodeNS Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

getAttributeNS Chrome

Full support Yes

Edge

Full support 12

Firefox 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 Yes

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

getBoundingClientRect Chrome

Full support 2

Edge

Full support 12

Firefox

Full support 3

IE

Full support 4

Opera

Full support 9.5

Safari

Full support 6

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari 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

getClientRects Chrome

Full support 2

Edge

Full support 12

Firefox

Full support 3

IE

Full support 8

Opera

Full support 9.5

Safari

Full support 6

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 1.0

getElementsByClassName Chrome

Full support 1

Edge Full support 16


Full support 16


No support 12 — 16

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.5

Safari

Full support 6

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 1.0

getElementsByTagName

Chrome 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 12

Firefox 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.5

Opera 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.1

Safari 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.

getElementsByTagNameNS

Chrome 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 12

Firefox 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.5

Opera 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 Yes

Chrome Android

Full support Yes

Firefox 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 Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

hasAttribute Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 1

IE

Full support 8

Opera

Full support 8

Safari

Full support 6

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 1.0

hasAttributeNS Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

hasAttributes Chrome

Full support Yes

Edge

Full support 16

Firefox Full support Yes

Notes'

Full support Yes

Notes'

Notes' [1] Before Firefox 35, it was implemented on the Node interface.

IE

Full support 9

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

hasPointerCapture Chrome

Full support 55

Edge

Full support 79

Firefox 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

No support No

Opera

Full support 42

Safari

Full support 13

WebView Android

Full support 55

Chrome Android

Full support 55

Firefox 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 42

Safari iOS

Full support 13

Samsung Internet Android

Full support 6.0

id Chrome

Full support 42

Edge

Full support 12

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support 42

Chrome Android

Full support 42

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support 4.0

innerHTML

Chrome Full support 33

Notes'

Full support 33

Notes'

Notes' This API was previously available on the Node API.

Edge

Full support 12

Firefox

Full support 1

IE

Full support 4

Opera

Full support 8

Safari

Full support 9

WebView 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 4

Opera Android

Full support 10.1

Safari iOS

Full support 9

Samsung Internet Android Full support 2.0

Notes'

Full support 2.0

Notes'

Notes' This API was previously available on the Node API.

insertAdjacentElement Chrome

Full support 1

Edge Full support 17


Full support 17


No support 12 — 17

Notes'

Notes' This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.

Firefox

Full support 48

IE 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 8

Safari

Full support 3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 48

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

insertAdjacentHTML Chrome

Full support 1

Edge Full support 17


Full support 17


No support 12 — 17

Notes'

Notes' This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.

Firefox

Full support 8

IE 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 8

Safari

Full support 4

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 8

Opera Android

Full support 10.1

Safari iOS

Full support 4

Samsung Internet Android

Full support 1.0

insertAdjacentText Chrome

Full support 1

Edge Full support 17


Full support 17


No support 12 — 17

Notes'

Notes' This function is implemented in the HTMLElement API, meaning non-HTML elements (like SVG elements) cannot use this function.

Firefox

Full support 48

IE 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 Yes

Safari

Full support 4

WebView Android

Full support 2.3

Chrome Android

Full support 18

Firefox Android

Full support 48

Opera Android

Full support Yes

Safari iOS

Full support 4

Samsung Internet Android

Full support 1.0

keydown event Chrome

Full support Yes

Edge

Full support ≤18

Firefox

Full support Yes

IE

?

Opera

?

Safari

?

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera 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 ≤18

Firefox 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 event Chrome

Full support Yes

Edge

Full support ≤18

Firefox

Full support Yes

IE

?

Opera

?

Safari

?

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support Yes

localName

Chrome Full support 31

Notes'

Full support 31

Notes'

Notes' This API was previously available on the Node API.

Edge

Full support 17

Firefox Full support 48

Notes'

Full support 48

Notes'

Notes' This API was previously available on the Node API.

IE

Full support 9

Opera

Full support Yes

Safari

Full support 10

WebView 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 Yes

Safari iOS

Full support Yes

Samsung Internet Android Full support 2.0

Notes'

Full support 2.0

Notes'

Notes' This API was previously available on the Node API.

matches

Chrome Full support 33


Full support 33


Full support 4

Alternate Name'

Alternate Name' Uses the non-standard name: webkitMatchesSelector

Edge Full support 15


Full support 15


Full support 12

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 event Chrome

Full support 2

Edge

Full support 12

Firefox

Full support 6

IE

Full support 9

Opera

Full support 11.6

Safari

Full support 4

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 6

Opera Android

Full support 12.1

Safari iOS

Full support 3.2

Samsung Internet Android

Full support 1.0

mouseenter event Chrome

Full support 30

Edge

Full support 12

Firefox

Full support 10

IE

Full support 5.5

Opera

Full support 17

Safari

Full support 6.1

WebView Android

Full support ≤37

Chrome Android

Full support 30

Firefox Android

Full support 10

Opera Android

Full support 18

Safari iOS

Full support 6.1

Samsung Internet Android

Full support 2.0

mouseleave event Chrome

Full support 30

Edge

Full support 12

Firefox

Full support 10

IE

Full support 5.5

Opera

Full support 17

Safari

Full support 6.1

WebView Android

Full support ≤37

Chrome Android

Full support 30

Firefox Android

Full support 10

Opera Android

Full support 18

Safari iOS

Full support 6.1

Samsung Internet Android

Full support 2.0

mousemove event Chrome

Full support 2

Edge

Full support 12

Firefox

Full support 6

IE

Full support 9

Opera

Full support 11.6

Safari

Full support 4

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android

Full support 6

Opera Android

Full support 12.1

Safari iOS

Full support 3.2

Samsung Internet Android

Full support 1.0

mouseout event Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

mouseover event Chrome

Full support 2

Edge

Full support 12

Firefox

Full support 6

IE

Full support 9

Opera

Full support 9.5

Safari

Full support 4

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android

Full support 6

Opera Android

Full support 10.1

Safari iOS

Full support 3.2

Samsung Internet Android

Full support 1.0

mouseup event Chrome

Full support 2

Edge

Full support 12

Firefox

Full support 6

IE

Full support 9

Opera

Full support 11.6

Safari

Full support 4

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android

Full support 6

Opera Android

Full support 12.1

Safari iOS

Full support 3.2

Samsung Internet Android

Full support 1.0

mousewheel event

Deprecated'Non-standard'

Chrome

Full support 31

Edge

Full support ≤79

Firefox

No support No

IE

?

Opera

?

Safari

?

WebView Android

?

Chrome Android

?

Firefox Android

No support No

Opera Android

?

Safari iOS

?

Samsung Internet Android

?

msContentZoom event

Non-standard'

Chrome

No support No

Edge

No support 12 — 79

Firefox

No support No

IE

Full support Yes

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

namespaceURI

Chrome Full support 31

Notes'

Full support 31

Notes'

Notes' This API was previously available on the Node API.

Edge

Full support 17

Firefox 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 10

WebView 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 Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android Full support 2.0

Notes'

Full support 2.0

Notes'

Notes' This API was previously available on the Node API.

onfullscreenchange

Chrome Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: onwebkitfullscreenchange

Edge

Full support ≤79

Firefox Full support 64


Full support 64


No support 10 — 65

Alternate Name'

Alternate Name' Uses the non-standard name: onmozfullscreenchange

IE

No support No

Opera

Full support Yes

Safari

?

WebView Android Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: onwebkitfullscreenchange

Chrome Android Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: onwebkitfullscreenchange

Firefox 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 Yes

Safari iOS

?

Samsung Internet Android

Full support 7.0

onfullscreenerror

Chrome Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: onwebkitfullscreenerror

Edge

Full support ≤79

Firefox Full support 64


Full support 64


No support 10 — 65

Alternate Name'

Alternate Name' Uses the non-standard name: onmozfullscreenerror

IE

No support No

Opera

Full support Yes

Safari

?

WebView Android Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: onwebkitfullscreenerror

Chrome Android Full support 71


Full support 71


Full support 57

Alternate Name'

Alternate Name' Uses the non-standard name: onwebkitfullscreenerror

Firefox 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 Yes

Safari iOS

?

Samsung Internet Android

Full support 7.0

openOrClosedShadowRoot

Non-standard'

Chrome

No support No

Edge

No support No

Firefox Full support 63

Notes'

Full support 63

Notes'

Notes' Available only to WebExtensions.

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android Full support 63

Notes'

Full support 63

Notes'

Notes' Available only to WebExtensions.

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

outerHTML

Chrome Full support 33

Notes'

Full support 33

Notes'

Notes' This API was previously available on the Node API.

Edge

Full support 12

Firefox

Full support 11

IE

Full support 4

Opera

Full support 8

Safari

Full support 9

WebView 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 14

Opera Android

Full support 10.1

Safari iOS

Full support 9

Samsung 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 No

Edge

No support No

Firefox

Full support Yes

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support Yes

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

part Chrome

Full support Yes

Edge

Full support 79

Firefox 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 No

Opera

Full support Yes

Safari

Full support 13.1

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

No support No

Opera Android

?

Safari iOS

Full support 13.4

Samsung Internet Android

Full support Yes

paste event Chrome

Full support 58

Edge

Full support 12

Firefox

Full support 22

IE

Full support 11

Opera

Full support 45

Safari

Full support 5

WebView Android

Full support 58

Chrome Android

Full support 58

Firefox Android

Full support 22

Opera Android

Full support 43

Safari iOS

Full support 4.2

Samsung Internet Android

Full support 7.0

prefix

Chrome Full support 31

Notes'

Full support 31

Notes'

Notes' This API was previously available on the Node API.

Edge

Full support 13

Firefox Full support 48

Notes'

Full support 48

Notes'

Notes' This API was previously available on the Node API.

IE

?

Opera

Full support Yes

Safari

Full support 10

WebView Android

Full support Yes

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 Yes

Safari iOS

Full support Yes

Samsung Internet Android Full support 2.0

Notes'

Full support 2.0

Notes'

Notes' This API was previously available on the Node API.

querySelector Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 3.5

IE Full support 9


Full support 9


Partial support 8

Notes'

Notes' querySelector() is supported, but only for CSS 2.1 selectors.

Opera

Full support 10

Safari

Full support 3.1

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 2

Samsung Internet Android

Full support 1.0

querySelectorAll Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 3.5

IE Full support 9


Full support 9


Partial support 8

Notes'

Notes' querySelectorAll() is supported, but only for CSS 2.1 selectors.

Opera

Full support 10

Safari

Full support 3.1

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 2

Samsung Internet Android

Full support 1.0

releasePointerCapture Chrome

Full support 55

Edge

Full support 12

Firefox 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 42

Safari

Full support 13

WebView Android

Full support 55

Chrome Android

Full support 55

Firefox 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 42

Safari iOS

Full support 13

Samsung Internet Android

Full support 6.0

removeAttribute Chrome

Full support 1

Edge Full support 12

Notes'

Full support 12

Notes'

Notes' This function doesn't respect boolean attributes' default values. See bug 12087679.

Firefox

Full support 1

IE

Full support 8

Opera

Full support 8

Safari

Full support 3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

removeAttributeNode Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

removeAttributeNS Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

requestFullscreen

Chrome Full support 71


Full support 71


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 71


Full support 71


Full support ≤37

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Chrome Android Full support 71


Full support 71


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

requestPointerLock

Chrome Full support Yes


Full support Yes


Full support Yes

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Edge

Full support 13

Firefox Full support 50


Full support 50


Full support Yes

Prefixed'

Prefixed' Implemented with the vendor prefix: moz

IE

No support No

Opera

Full support Yes

Safari

Full support 10

WebView 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 Yes

Opera Android

Full support Yes

Safari 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 No

Edge

No support No

Firefox

No support No

IE

Full support 6

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

scroll Chrome

Full support 45

Edge

Full support 79

Firefox

Full support 36

IE

No support No

Opera

Full support 32

Safari

Full support 10

WebView Android

Full support 45

Chrome Android

Full support 45

Firefox Android

Full support 36

Opera Android

Full support 32

Safari iOS

No support No

Samsung Internet Android

Full support 5.0

scroll event Chrome

Full support Yes

Edge

Full support ≤18

Firefox

Full support Yes

IE

?

Opera

?

Safari

?

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support Yes

scrollBy Chrome

Full support 45

Edge

Full support 79

Firefox

Full support 36

IE

No support No

Opera

Full support 32

Safari

Full support 10

WebView Android

Full support 45

Chrome Android

Full support 45

Firefox Android

Full support 36

Opera Android

Full support 32

Safari iOS

No support No

Samsung Internet Android

Full support 5.0

scrollHeight Chrome

Full support 4

Edge

Full support 12

Firefox 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 8

Safari

Full support 6

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox 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.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 1.0

scrollIntoView

Experimental'

Chrome

Full support 29

Edge Full support 17

Notes'

Full support 17

Notes'

Notes' The only parameter supported is alignToTop. No support 12 — 17

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 1

IE 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 38

Safari Full support 6

Notes'

Full support 6

Notes'

Notes' No support for smooth behavior or center options.

WebView Android

Full support ≤37

Chrome Android

Full support 29

Firefox Android

Full support 4

Opera Android

Full support 41

Safari 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 1

Edge

Full support 79

Firefox

No support No

IE

No support No

Opera

Full support 15

Safari

Full support 3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

No support No

Opera Android

Full support 14

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

scrollLeft

Chrome 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 1

IE 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 8

Safari

Full support 6

WebView 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 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 4.0

scrollLeftMax

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

Full support 16

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support 16

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

scrollTo Chrome

Full support 45

Edge

Full support 79

Firefox

Full support 36

IE

No support No

Opera

Full support 32

Safari

Full support 10

WebView Android

Full support 45

Chrome Android

Full support 45

Firefox Android

Full support 36

Opera Android

Full support 32

Safari iOS

No support No

Samsung Internet Android

Full support 5.0

scrollTop Chrome

Full support 43

Edge

Full support 12

Firefox

Full support 1

IE

Full support 8

Opera

Full support 8

Safari

Full support 6

WebView Android

Full support 43

Chrome Android

Full support 43

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 4.0

scrollTopMax

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

Full support 16

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support 16

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

scrollWidth Chrome

Full support 43

Edge

Full support 12

Firefox

Full support Yes

IE 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 Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support 43

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support 4.0

select event Chrome

Full support Yes

Edge

Full support ≤18

Firefox

Full support Yes

IE

?

Opera

?

Safari

?

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support Yes

setAttribute Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 1

IE 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 8

Safari

Full support 3

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

setAttributeNode Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

setAttributeNodeNS Chrome

Full support Yes

Edge 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 Yes

IE 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 Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

setAttributeNS Chrome

Full support Yes

Edge

Full support 12

Firefox

Full support Yes

IE

Full support Yes

Opera

Full support Yes

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support Yes

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support Yes

setCapture

Deprecated'Non-standard'

Chrome

No support No

Edge 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 Yes

IE 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 No

Safari

?

WebView Android

No support No

Chrome Android

No support No

Firefox Android

?

Opera Android

No support No

Safari iOS

?

Samsung Internet Android

No support No

setPointerCapture Chrome

Full support 55

Edge

Full support 12

Firefox 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 42

Safari

Full support 13

WebView Android

Full support 55

Chrome Android

Full support 55

Firefox 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 42

Safari iOS

Full support 13

Samsung Internet Android

Full support 6.0

shadowRoot Chrome

Full support 43

Edge

Full support 79

Firefox 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 No

Opera

Full support 40

Safari

Full support 10

WebView Android

Full support 43

Chrome Android

Full support 43

Firefox 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 41

Safari iOS

Full support Yes

Samsung Internet Android

Full support 4.0

show event

Deprecated'

Chrome

No support No

Edge

No support No

Firefox

Full support Yes

IE

?

Opera

?

Safari

?

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support Yes

Opera Android

?

Safari iOS

?

Samsung Internet Android

No support No

slot Chrome

Full support 53

Edge

Full support 79

Firefox

Full support 63

IE

No support No

Opera

Full support Yes

Safari

Full support 10

WebView Android

Full support 53

Chrome Android

Full support 53

Firefox Android

Full support 63

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support 6.0

tabStop

Deprecated'Non-standard'

Chrome

Full support 43

Edge

Full support ≤79

Firefox

?

IE

No support No

Opera

?

Safari

?

WebView Android

Full support 43

Chrome Android

Full support 43

Firefox Android

?

Opera Android

?

Safari iOS

?

Samsung Internet Android

Full support 4.0

tagName Chrome

Full support 43

Edge

Full support 12

Firefox

Full support 1

IE

Full support 8

Opera

Full support 8

Safari

Full support 6

WebView Android

Full support 43

Chrome Android

Full support 43

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 6

Samsung Internet Android

Full support 4.0

toggleAttribute Chrome

Full support 69

Edge

Full support 18

Firefox

Full support 63

IE

No support No

Opera

Full support 56

Safari

Full support 12

WebView Android

Full support 69

Chrome Android

Full support 69

Firefox Android

Full support 63

Opera Android

Full support 48

Safari iOS

Full support Yes

Samsung Internet Android

Full support 10.0

touchcancel event Chrome

Full support 22

Edge

Full support 12

Firefox

Full support 52

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

Full support Yes

Chrome Android

Full support 25

Firefox Android

Full support 6

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support 1.5

touchend event Chrome

Full support 22

Edge

Full support 12

Firefox

Full support 52

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

Full support Yes

Chrome Android

Full support 25

Firefox Android

Full support 6

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support 1.5

touchmove event Chrome

Full support 22

Edge

Full support 12

Firefox

Full support 52

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

Full support Yes

Chrome Android

Full support 25

Firefox Android

Full support 6

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support 1.5

touchstart event Chrome

Full support 22

Edge

Full support 12

Firefox

Full support 52

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

Full support Yes

Chrome Android

Full support 25

Firefox Android

Full support 6

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support 1.5

underflow event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

Full support Yes

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

Full support Yes

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

webkitmouseforcechanged event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

No support No

IE

No support No

Opera

No support No

Safari

Full support Yes

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

Full support Yes

Samsung Internet Android

No support No

webkitmouseforcedown event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

No support No

IE

No support No

Opera

No support No

Safari

Full support Yes

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

Full support Yes

Samsung Internet Android

No support No

webkitmouseforceup event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

No support No

IE

No support No

Opera

No support No

Safari

Full support Yes

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

Full support Yes

Samsung Internet Android

No support No

webkitmouseforcewillbegin event

Non-standard'

Chrome

No support No

Edge

No support No

Firefox

No support No

IE

No support No

Opera

No support No

Safari

Full support Yes

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

Full support Yes

Samsung Internet Android

No support No

wheel event Chrome

Full support 61

Edge

Full support 12

Firefox

Full support 17

IE 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 48

Safari

Full support 7

WebView Android

Full support 61

Chrome Android

Full support 61

Firefox Android

Full support 17

Opera Android

Full support 45

Safari iOS

Full support 7

Samsung 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.


Element by Mozilla Contributors is licensed under CC-BY-SA 2.5.