The mode
property of the ShadowRoot
specifies its mode — either open
or closed
. This defines whether or not the shadow root's internal features are accessible from JavaScript.
When the mode
of a shadow root is "closed
", the shadow rootβs implementation internals are inaccessible and unchangeable from JavaScript—in the same way the implementation internals of, for example, the <video>
element are inaccessible and unchangeable from JavaScript.
Syntax
var mode = shadowRoot.mode
Value
A value defined in the ShadowRootMode
enum — either open
or closed
.
Examples
let customElem = document.querySelector('my-shadow-dom-element'); let shadow = customElem.shadowRoot; // Another way to check whether the shadow root is open; it will return null if not if(shadow) { // If it is open, close it to stop people stealing our secrets! shadow.mode = 'closed'; }
Specifications
Specification | Status | Comment |
---|---|---|
DOM The definition of 'ShadowRoot.mode' in that specification. |
Living Standard |
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
mode | Chrome Full support 57 | Edge Full support 79 | Firefox
Full support
63
| IE No support No | Opera Full support 40 | Safari Full support 10.1 | WebView Android Full support 57 | Chrome Android Full support 57 | Firefox Android
Full support
63
| Opera Android Full support 41 | Safari iOS Full support 10.3 | Samsung Internet Android Full support 6.0 |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- User must explicitly enable this feature.
- User must explicitly enable this feature.