html attribute
`<script type>` HTML attribute
The type attribute of the <script> element indicates the type of script represented by the element: a classic script, an import map, a JavaScript module, speculation rules, or a data block.
Value
The value of this attribute indicates the type of data represented by the script, and will be one of the following:
- Attribute is not set (default), an empty string, or a JavaScript MIME type
- : Indicates that the script is a “classic script”, containing JavaScript code. Authors are encouraged to omit the attribute if the script refers to JavaScript code rather than specify a MIME type. JavaScript MIME types are listed in the IANA media types specification.
importmap- : This value indicates that the body of the element contains an import map. The import map is a JSON object that developers can use to control how the browser resolves module specifiers when importing JavaScript modules.
module- : This value causes the code to be treated as a JavaScript module.
The processing of the script contents is deferred.
The
charsetanddeferattributes have no effect. For information on usingmodule, see our JavaScript modules guide. Unlike classic scripts, module scripts require the use of the CORS protocol for cross-origin fetching.
- : This value causes the code to be treated as a JavaScript module.
The processing of the script contents is deferred.
The
speculationrulesExperimental- : This value indicates that the body of the element contains speculation rules.
Speculation rules take the form of a JSON object that determine what resources should be prefetched or prerendered by the browser. This is part of the
Speculation Rules API.
- : This value indicates that the body of the element contains speculation rules.
Speculation rules take the form of a JSON object that determine what resources should be prefetched or prerendered by the browser. This is part of the
- Any other value
- : The embedded content is treated as a data block, and won’t be processed by the browser.
Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks.
All of the other attributes will be ignored, including the
srcattribute.
- : The embedded content is treated as a data block, and won’t be processed by the browser.
Developers must use a valid MIME type that is not a JavaScript MIME type to denote data blocks.
All of the other attributes will be ignored, including the
[!NOTE] In earlier browsers, the type identified the scripting language of the embedded or imported (via the
srcattribute) code.
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.