HTML <script> Tag

The <script> tag adds executable code, usually JavaScript, to a web page.

The code can be declared in-line, inside the <script> tag, or linked from an external source with the src attribute.



A <script> tag with JavaScript code. It displays an alert box when the page is loaded.

  alert('Hello there!');

Using <script>

The <script> element embeds code, like JavaScript, in a page.

This tag and the code are invisible to the user.

The <script> tag can also load external script files with src.

A single page can have multiple <script> elements.

More Examples

A <script> element with JavaScript that continuously increments the value of a progress bar. This causes the control to continually fill.

Loading files...
<div>Loading files... </div>
<progress id="myprogress" value="0" max="100"></progress>

  setInterval( function(){
      let value = document.getElementById("myprogress").value;
      value = Math.min(value + .1, 100) % 100;
      document.getElementById("myprogress").value = value;
  }, 10 );

Attributes for <script>

This table lists the <script> tag attributes.

Attribute Value Description
src URL The URL of an external script file.
type media-type Media type of the script.
charset charset Defines the character encoding of the external script.
async async Execute script asynchronously for loaded external scripts.
defer defer Executes script when browser has finished evaluating the code.
id   identifier Defines a unique identifier for the script block.
crossorigin anonymous
Defines how the element handles cross-origin requests.

For additional global attributes see our global attributes list.

Obsolete Attributes

Do not use the attributes listed below.  They are no longer valid on the script tag in HTML5.

Attribute Description Alternative
charset Defines the character encoding of the script. n/a
language Defines the language of the script. type attribute

Did you know?

Did you know?

Placing <script> elements on an HTML page

A <script> tag can go in the <head> section, <body> section, or after the <body> section.

It all depends on when you want the script to load.

Keeping <script> elements in a <head> section keeps the main content area neat and uncluttered.

If code executes during page load, for example: document.write() to generate content, then the required <script> needs to be placed before the point where it is used.

Performance wise, the best place for <script> elements is just before the </body> closing tag.

Placing <script> after </body> will load all HTML elements first before executing any script.

Page Tags

The <script> tag is part of a group of tags that define the structure and functionality of a web page. This group is referred to as the Page tag group. Together, they allow you to create solid, well-structured web pages.

Here is the complete list.

Element Description
<!DOCTYPE> Must appear on the first line of a page. Specifies the HTML version
<html> Defines the root container for an HTML document
<head> Creates a head container that holds page-level metadata elements
<meta> Provides metadata about a web page
<link> Defines a link to an external source, such as a style sheet
<base> Sets the base URL for all relative URLs on a page
<script> Adds JavaScript to a page. Either client- or server-side
<style> Adds CSS style elements to a page
<title> Specifies the page title that displays in the browser's tab
<body> Specifies a container for the content of the page, with text, links, images, etc.

Browser support

Here is when <script> support started for each browser:

1.0 Sep 2008
1.0 Sep 2002
1.0 Aug 1995
1.0 Jan 2006
1.0 Jan 2003

You may also like

Last updated on Sep 30, 2023