HTML тег <script>

Элемент <script> (от англ. "script" ‒ «сценарий, скрипт») определяет скрипты, исполняемые на стороне пользователя, например, JavaScript.

Элемент <script> либо непосредственно содержит сам скрипт, либо при помощи атрибута src указывает на внешний файл скрипта. Последний вариант является более удобным, так как уменьшает размер документа и время его загрузки (JS файл кэшируется браузером при первой загрузке). Если элемент ссылается на внешний скрипт, то в этом случае элемент должен быть пустым. Сам внешний файл должен содержать только JavaScript-код (без тегов <script> и </script>).

Существует несколько способов исполнения внешних скриптов:

  • Если установлен атрибут async="async", то скрипт исполняется асинхронно, т. е. скрипт будет исполняться одновременно с загрузкой страницы
  • Если атрибут async не определен, а атрибут defer="defer", то скрипт будет исполнен сразу же, как будет закончена загрузка страницы
  • Если атрибуты async или defer не определены, то скрипты загружаются и исполняются в том порядке, в котором они расположены в HTML-коде

Элемент <script> может располагаться как в секции <head>, так и в <body> HTML-документа в неограниченном количестве. В большинстве случаев местоположение скрипта никак не сказывается на работу программы. Однако скрипты, которые должны выполняться в первую очередь, обычно помещают в элемент <head> документа.

Примечание: На случай неработоспособности скриптов (отключены или не поддерживаются) указывается элемент <noscript>.

Синтаксис

<script>
 JavaScript-код
</script> 
<script src="URL-адрес"></script>

Закрывающий тег

Обязателен.

Атрибуты

asyncHTML5
Логический атрибут, который указывает, что скрипт выполняется асинхронно (только для внешних скриптов).

charset
Задает кодировку символов, используемых во внешнем файле скрипта.

crossorigin
Атрибут определяет, используется ли CORS при загрузке скрипта.

defer
Откладывает выполнение скрипта до тех пор, пока вся страница не будет загружена полностью.

languageУстарел
Устанавливает язык программирования на котором написан скрипт.

src
Указывает URL адрес внешнего файла скрипта (допускается использование как относительных, так и абсолютных адресов).

type
Указывает MIME-тип скрипта.

Для этого элемента доступны глобальные атрибуты и события.

Стилизация по умолчанию

Большинство браузеров отобразит элемент <script> со следующими значениями CSS по умолчанию:

script {
    display: none;
}

Различия между HTML 4.01 и HTML5

В HTML 5 был добавлен атрибут async и удалён атрибут xml:space. В HTML5, атрибут type больше не требуется для JavaScript (значение атрибута по умолчанию - "text/javascript").

Пример использования:

JavaScript может менять стили:

Пример HTML:

Попробуй сам
<script>
function setColor() {
  document.getElementById("demo").style.backgroundColor = "red";  
}
</script>

Спецификации

Спецификация Статус
HTML 4.01 (W3C) Рекомендация
HTML5 (W3C) Рекомендация
HTML 5.1 (W3C) Рекомендация

Поддержка браузерами


Попробуйте сами - Примеры

Как подключить внешний файл к HTML-документу:
Внешний файл script.js

Как запустить скрипт во время загрузки HTML-документа:
Запуск скрипта

Как отобразить альтернативный текст пользователям, браузер которых не поддерживает скрипты:
Элемент noscript


Учебник HTML

HTML уроки: HTML JavaScript

HTML Элементы