This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The type property of the HTMLScriptElement interface is a string that reflects the type of the script.
It reflects the type attribute of the <script> element.
A string. The value of this property can be one of the following:
Indicates that the script is a "classic script", containing JavaScript code.
moduleThis value causes the code to be treated as a JavaScript module.
importmapThis value indicates that the body of the element contains an import map.
speculationrules Experimental This value indicates that the body of the element contains speculation rules.
The embedded content is treated as a data block, and won't be processed by the browser.
For more information, please refer to the type attribute of the <script> element.
<script id="el" type="text/javascript"></script>
const el = document.getElementById("el");
console.log(el.type); // Output: "text/javascript"
| Specification |
|---|
| HTML> # dom-script-type> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
type |
1 | 12 | 1 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 | 1 |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement/type