Перейти к содержимому

HTML-тег <script>

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

DANGER

Если вы подключаете внешний файл со скриптами, не встраивайте скрипт в тот же тег <script>.

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

script tag example

Синтаксис

Тег <script> является парным. Содержимое записывается между открывающим (<script>) и закрывающим (</script>) тегами.

Важные примечания

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

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

Для выбора HTML-элемента JavaScript использует метод document.getElementById().

Пример HTML-тега <script>:

HTML-тег <script>

html
<!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>

html
<script type="text/javascript">
//<![CDATA[
var i = 10;
if (i < 5) {
  // some code
}
//]]>
</script>

Атрибуты

АтрибутЗначениеОписание
asyncasyncОпределяет, что скрипт выполняется асинхронно.
charsetcharsetОпределяет кодировку символов, используемую во внешнем файле с кодом JavaScript. Устарел в HTML5.
deferdeferОпределяет, что скрипт должен выполняться после загрузки страницы.
srcURLОпределяет URL внешнего файла с кодом JavaScript. (Может быть относительным или абсолютным).
typemedia_typeОпределяет MIME-тип скрипта.

Тег <script> поддерживает Глобальные атрибуты и Атрибуты событий.

Практика

В чём назначение HTML <script> тега?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.