<script>: type attribute
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
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
charset
anddefer
attributes 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. speculationrules
Experimental-
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.
- 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
src
attribute.
Note:
In earlier browsers, the type identified the scripting language of the embedded or imported (via the src
attribute) code.
Specifications
Specification |
---|
HTML # attr-script-type |
Browser compatibility
Report problems with this compatibility data on GitHubdesktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
type | ||||||||||||
type="importmap" | ||||||||||||
importmap.integrity | ||||||||||||
Multiple import maps | ||||||||||||
type="module" | ||||||||||||
type="speculationrules" | ||||||||||||
eagerness key | ||||||||||||
expects_no_vary_search key | ||||||||||||
prefetch key | ||||||||||||
prerender key | ||||||||||||
referrer_policy key | ||||||||||||
relative_to key | ||||||||||||
requires key | ||||||||||||
anonymous-client-ip-when-cross-origin value | ||||||||||||
source key is optional | ||||||||||||
urls key | ||||||||||||
where key |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- Partial support
- Partial support
- In development. Supported in a pre-release version.
- In development. Supported in a pre-release version.
- No support
- No support
- Experimental. Expect behavior to change in the future.
- See implementation notes.
- Has more compatibility info.