script element is used to embed or reference an executable script within an HTML or XHTML document.
defer attributes are fetched and executed immediately, before the browser continues to parse the page.
|Content categories||Metadata content, Flow content, Phrasing content|
|Permitted content||Dynamic script such as |
|Tag omission||None, must have both a start tag and an end tag.|
|Permitted parent elements||Any element that accepts metadata elements, or any element that accepts phrasing content.|
|Normative document||HTML5, section 4.3.1 (HTML4.01, section 18.2.1)|
Like all other HTML elements, this element supports the global attributes.
- Set this Boolean attribute to indicate that the browser should, if possible, execute the script asynchronously. It has no effect on inline scripts (i.e., scripts that don't have the src attribute). In older browsers that don't support the async attribute, parser-inserted scripts block the parser; script-inserted scripts execute asynchronously in IE and WebKit, but synchronously in Opera and pre-4.0 Firefox. In Firefox 4.0, the
asyncDOM property defaults to
truefor script-created scripts, so the default behavior matches the behavior of IE and WebKit. To request script-inserted external scripts be executed in the insertion order in browsers where the
true(such as Firefox 4.0), set
.async=falseon the scripts you want to maintain order. Never call
asyncscript. In Gecko 1.9.2, calling
document.write()has an unpredictable effect. In Gecko 2.0, calling
asyncscript has no effect (other than printing a warning to the error console).
- This attribute specifies the URI of an external script; this can be used as an alternative to embedding a script directly within a document.
scriptelements with an
srcattribute specified should not have a script embedded within its tags.
- This attribute identifies the scripting language of code embedded within a
scriptelement or referenced via the element’s
srcattribute. This is specified as a MIME type; examples of supported MIME types include
- Like the
typeattribute, this attribute identifies the scripting language in use. Unlike the
typeattribute, however, this attribute’s possible values were never standardized. The
typeattribute should be used instead.
- This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the document has been parsed. Since this feature hasn't yet been implemented by all other major browsers, authors should not assume that the script’s execution will actually be deferred. Never call
deferscript (since Gecko 1.9.2, this will blow away the document). The
deferattribute shouldn't be used on scripts that don't have the
srcattribute. Since Gecko 1.9.2, the
deferattribute is ignored on scripts that don't have the
srcattribute. However, in Gecko 1.9.1 even inline scripts are deferred if the
deferattribute is set.
This element implements the HTMLScriptElement interface.
|Feature||Chrome||Firefox (Gecko)||Internet Explorer||Opera||Safari|
|Basic support||1.0||1.0 (1.7 or earlier)||(Yes)||(Yes)||(Yes)|
| ||(Yes)||3.6 (1.9.2)||10||--||(Yes)|
| ||(Yes)||3.5 (1.9.1)||4||--||(Yes)|
|Feature||Android||Firefox Mobile (Gecko)||IE Mobile||Opera Mobile||Safari Mobile|
|Basic support||(Yes)||1.0 (1.0)||(Yes)||(Yes)||(Yes)|
| ||(Yes)||1.0 (1.0)||--||?||(Yes)|
| ||(Yes)||1.0 (1.0)||--||?||(Yes)|
Starting in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
script elements that have been created by calling
document.createElement("script") into the DOM no longer enforces execution in insertion order. This change lets Gecko properly abide by the HTML5 specification. To make script-inserted external scripts execute in their insertion order, set
.async=false on them.