ExampleDisplay "Hello world" with JavaScript: | Browser Support |
1. Definition and Usage
The <script> tag is used to define a client-side script, such as a JavaScript.
The <script> element either contains scripting statements, or it points to an external script file through the src attribute.
The required type attribute specifies the MIME type of the script.
Common uses for JavaScript are image manipulation, form validation, and dynamic changes of content.
2. Tips and Notes
Note: If the "src" attribute is present, the <script> element must be empty.
Tip: Also look at the <noscript> element for users that have disabled scripts in their browser, or have a browser that doesn’t support client-side scripting.
3. Differences Between HTML and XHTML
HTML 4 and XHTML deal different with the content inside scripts:
- In HTML 4, the content type is declared as CDATA, which means that entities will not be parsed.
- In XHTML, the content type is declared as (#PCDATA), which means that entities will be parsed
This means that in XHTML, all special characters should be encoded or all content should be wrapped inside a CDATA section.
To ensure that a script parses correctly in an XHTML document, use the following syntax:
4. Required Attributes
DTD indicates in which HTML 4.01/XHTML 1.0 DTD the attribute is allowed. S=Strict, T=Transitional, and F=Frameset.
Attribute | Value | Description | DTD |
---|---|---|---|
type | MIME-type | Specifies the MIME type of the script | STF |
5. Optional Attributes
Attribute | Value | Description | DTD |
---|---|---|---|
charset | charset | Specifies the character encoding used in an external script file | STF |
defer | defer | Specifies that the script is executed when the page has finished parsing (only for external scripts) | STF |
src | URL | Specifies the URL of an external script file | STF |
xml:space | preserve | Specifies whether whitespace in code should be preserved |
6. Standard Attributes
The <script> tag does not support any standard attributes.
7. Event Attributes
The <script> tag does not support any event attributes.