HTML <script> Tag
Example
Write "Hello JavaScript!" with JavaScript:
<script>
document.getElementById("demo").innerHTML = "Hello JavaScript!";
</script>
Try it Yourself »
Definition and Usage
The <script> tag is used to define a client-side script (JavaScript).
The <script> element either contains scripting statements, or it points to an external script file through the src attribute.
Common uses for JavaScript are image manipulation, form validation, and dynamic changes of content.
Tip: If you want to learn JavaScript, visit our JavaScript Tutorial.
Browser Support
Element | |||||
---|---|---|---|---|---|
<script> | Yes | Yes | Yes | Yes | Yes |
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.
Note: There are several ways an external script can be executed:
- If async="async": The script is executed asynchronously with the rest of the page (the script will be executed while the page continues the parsing)
- If async is not present and defer="defer": The script is executed when the page has finished parsing
- If neither async or defer is present: The script is fetched and executed immediately, before the browser continues parsing the page
Differences Between HTML 4.01 and HTML5
The "type" attribute is required in HTML 4, but optional in HTML5.
The "async" attribute is new in HTML5.
The HTML 4.01 attribute: "xml:space", is not supported in HTML5.
Differences Between HTML and XHTML
In XHTML, the content inside scripts is declared as #PCDATA (instead of CDATA), 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:
<script type="text/javascript">
//<![CDATA[
var i = 10;
if (i < 5) {
// some code
}
//]]>
</script>
Attributes
Attribute | Value | Description |
---|---|---|
async | async | Specifies that the script is executed asynchronously (only for external scripts) |
charset | charset | Specifies the character encoding used in an external script file |
defer | defer | Specifies that the script is executed when the page has finished parsing (only for external scripts) |
src | URL | Specifies the URL of an external script file |
type | media_type | Specifies the media type of the script |
xml:space | preserve | Not supported in HTML5. Specifies whether whitespace in code should be preserved |
Global Attributes
The <script> tag also supports the Global Attributes in HTML.
Related Pages
HTML tutorial: HTML Scripts
HTML DOM reference: Script Object
JavaScript Tutorial: Learn JavaScript
Default CSS Settings
Most browsers will display the <script> element with the following default values:
script {
display: none;
}