HTML-тег <script>
HTML-тег <script> объявляет клиентский скрипт (JavaScript) в HTML-документе. При определении клиентского скрипта тег <script> используется для обработки изображений, проверки форм и динамического изменения содержимого. Тег может содержать сам скрипт или ссылку на внешний файл со скриптами. Путь к внешнему файлу указывается с помощью атрибута src.
DANGER
Если вы подключаете внешний файл со скриптами, не встраивайте скрипт в тот же тег <script>.
HTML-тег <script> может располагаться в элементе <head>, а также внутри элемента <body>. Скрипты, которые должны выполняться в первую очередь, часто размещают в элементе <head> с атрибутом defer или в конце элемента <body>. Тег <script> можно использовать в HTML-документе многократно.

Синтаксис
Тег <script> является парным. Содержимое записывается между открывающим (<script>) и закрывающим (</script>) тегами.
Важные примечания
Существует несколько способов выполнения внешнего скрипта:
- По умолчанию (без
asyncилиdefer) скрипт блокирует парсинг HTML и выполняется немедленно при встрече. - Атрибут
defer="defer"указывает, что скрипт выполняется после того, как HTML-документ будет полностью разобран. - Атрибут
async="async"указывает, что скрипт выполняется асинхронно, сразу после загрузки, не блокируя парсинг.
Для выбора HTML-элемента JavaScript использует метод document.getElementById().
Пример HTML-тега <script>:
HTML-тег <script>
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<p id="example"></p>
<script>
document.getElementById("example").innerHTML = "My first JavaScript code";
</script>
</body>
</html>Различия между HTML 4.01 и HTML5
HTML 4 требует атрибут type, тогда как в HTML5 он необязателен. В HTML5 атрибут async является новым. HTML5 не поддерживает атрибут xml:space из HTML 4.01.
Различия между HTML и XHTML
В XHTML содержимое внутри скриптов объявляется как #PCDATA (вместо CDATA). В таких случаях сущности будут разобраны.
В XHTML все специальные символы должны быть закодированы, либо всё содержимое должно быть обернуто в секцию CDATA.
Пример HTML-тега <script>
<script type="text/javascript">
//<![CDATA[
var i = 10;
if (i < 5) {
// some code
}
//]]>
</script>Атрибуты
| Атрибут | Значение | Описание |
|---|---|---|
| async | async | Определяет, что скрипт выполняется асинхронно. |
| charset | charset | Определяет кодировку символов, используемую во внешнем файле с кодом JavaScript. Устарел в HTML5. |
| defer | defer | Определяет, что скрипт должен выполняться после загрузки страницы. |
| src | URL | Определяет URL внешнего файла с кодом JavaScript. (Может быть относительным или абсолютным). |
| type | media_type | Определяет MIME-тип скрипта. |
Тег <script> поддерживает Глобальные атрибуты и Атрибуты событий.
Практика
В чём назначение HTML <script> тега?