Тег script
Тег script подключает JavaScript к HTML странице (а также, намного реже, и другие скрипты).
Можно подключать отдельный JavaScript файл (в этом случае должен быть указан атрибут src ) или же писать JavaScript прямо на HTML странице. По сути script ведет себя как тег link и тег style одновременно, только не для CSS, а для JavaScript.
Работа тега зависит от того, есть атрибут src или нет. Например, так подключится отдельный JavaScript файл, а так мы напишем JavaScript код прямо на странице.
Данный тег должен размещаться внутри тега head , однако это не обязательно — тег script можно разместить и внутри тега body и это будет работать.
Атрибуты и свойства
| Атрибут/свойство | Описание |
|---|---|
| src | Путь к подключаемому файлу. |
| type | Тип данных подключаемого файла. Для JavaScript следует использовать text/javascript. В HTML5 это не обязательно. |
| language | Задает язык скрипта. Данный атрибут осуждается, а вместо него следует применять атрибут type. |
| defer | Атрибут defer откладывает выполнение скрипта до тех пор, пока вся страница не будет загружена полностью. Пользоваться так: или так . |
Добавление кода JavaScript в HTML
JavaScript (JS) – это язык программирования, используемый в веб-разработке. Наряду с HTML и CSS JavaScript является одной из основных технологий и используется для создания интерактивных веб-страниц и приложений. Современные веб-браузеры, которые придерживаются базовых стандартов отображения, поддерживают JavaScript через встроенные модули и не требуют дополнительных плагинов.
Создавая файлы приложения, JavaScript необходимо загружать и запускать вместе с разметкой HTML. Это можно сделать либо внутри HTML-документа, либо в отдельном файле, который браузер загрузит вместе с HTML-документом.
Данный манул научит внедрять JavaScript в HTML-документы и отдельные файлы программы.
Добавление JavaScript в HTML-документ
Чтобы вставить JavaScript в HTML-документ, используйте специальный тег , который охватывает код JavaScript.
Тег можно вставить в раздел и в
или после закрывающего тега в зависимости от того, когда нужно загрузить JavaScript.Как правило, код JavaScript размещается внутри раздела , что позволяет отделить его от основного содержимого документа HTML.
Однако если скрипт должен запускаться в определенной точке разметки страницы, его нужно размещать именно в этой точке. Обычно она находится внутри раздела .
Рассмотрим следующий HTML-документ с заголовком Today’s Date.
На данный момент этот файл содержит только разметку HTML. Предположим, в документ нужно добавить следующий код JavaScript:
let d = new Date();
alert(«Today’s date is » + d);
Этот код позволит веб-странице отображать сообщение с текущей датой независимо от того, когда пользователь загружает сайт.
Для этого нужно добавить тег и поместить в него код JavaScript.
Добавьте код JavaScript в раздел . В этом случае браузер будет обрабатывать JavaScript прежде остального содержимого страницы. Добавьте следующий код JavaScript в теги .
Загрузите страницу. На ней появится следующее предупреждение:
Today’s date is Thu Jun 29 2017 10:46:47 GMT-0400 (EDT)
Попробуйте добавить этот код в раздел и вынести его за этот раздел. Поскольку этот HTML-документ довольно прост, это не особо повлияет на отображение страницы.
Чтобы дата отображалась не в отдельном предупреждении, а прямо на странице, нужно добавить скрипт в раздел .
Загрузите эту страницу в браузере. Теперь дата будет указана прямо в теле страницы.
Today’s date is Thu Jun 29 2017 14:04:45 GMT-0400 (EDT)
Небольшие скрипты и скрипты для одной страницы будут хорошо работать внутри HTML-документа. Но объемные скрипты, предназначенные для нескольких страниц, помещать в документ не очень эффективно. Такие скрипты будут лучше обрабатываться в отдельных файлах.
Отдельные файлы JavaScript
Большие скрипты JavaScript помещают в специальные файлы js, а затем ссылаются на них внутри HTML-документа. Подобный механизм используется в CSS.
Преимущества такого подхода:
- Разметку HTML и скрипты JavaScript проще читать по отдельности.
- Такой код проще поддерживать.
- Если JavaScript кэшируется, страницы будут быстрее загружаться.
Чтобы научиться связывать файлы JavaScript с HTML, создайте небольшой тестовый проект. Он будет состоять из таких файлов:
- script.js в каталоге js/,
- style.css в каталоге css/,
- главный файл index.html в корневом каталоге проекта.
project/
├── css/
| └── style.css
├── js/
| └── script.js
└── index.html
Начать можно с файла index.html и шаблона, который мы рассмотрели в предыдущем разделе.
Затем перейдите к файлу script.js, в котором хранится скрипт JavaScript. Он будет отображать заголовок .
let d = new Date();
document.body.innerHTML = «
Today’s date is » + d + «
«
Добавьте ссылку на этот скрипт в раздел или под ним:
Тег указывает на скрипт script.js в каталоге js/.
Теперь главный документ index.html будет выглядеть так:
Теперь отредактируйте файл style.css и укажите в нем цвет фона и стиль заголовка .
body background-color: #0080ff;
>
h1 color: #fff;
font-family: Arial, Helvetica, sans-serif;
>
После этого нужно сослаться на файл CSS в разделе HTML-документа index.html:
Попробуйте загрузить эту страницу в браузере. Она будет выглядеть так:
Today’s date is Thu Jun 29 2017 14:08:55 GMT-0400 (EDT)
На этот файл JavaScript могут ссылаться и другие HTML-документы.
Заключение
Теперь вы умеете внедрять код JavaScript в HTML-документы, создавать специальные файлы для скриптов JavaScript и ссылаться на них.
Читайте также:
- Написание комментариев в JavaScript
- Использование консоли разработчика JavaScript
Где размещать тег script
Тег предназначен для описания скриптов, может содержать ссылку на программу или ее текст на определенном языке. Скрипты могут располагаться во внешнем файле и связываться с любым HTML-документом. Такой подход позволяет использовать одни и те же общие функции на многих веб-страницах и ускоряет их загрузку, т.к. внешний файл кэшируется при первой загрузке, и скрипт вызывается быстрее при последующих вызовах.
может располагаться в заголовке или теле HTML-документа в неограниченном количестве. В большинстве случаев местоположение скрипта никак не сказывается на работу программы. Однако скрипты, которые должны выполняться в первую очередь, обычно помещают в заголовок документа.
Синтаксис
Атрибуты
async Загружает скрипт асинхронно. defer Откладывает выполнение скрипта до тех пор, пока вся страница не будет загружена полностью. language Устанавливает язык программирования на котором написан скрипт. src Адрес скрипта из внешнего файла для импорта в текущий документ. type Определяет тип содержимого тега .
Закрывающий тег
HTML 4.01 IE Cr Op Sa Fx
Тег SCRIPT
Результат данного примера показан на рис. 1.

Рис. 1. Результат работы скрипта
В данном примере с помощью скрипта выводится таблица, состоящая из пяти строк и столбцов, которая заполняется числами.
HTML5 IE Cr Op Sa Fx
Тег SCRIPT function popup()
Примечание
В HTML5 атрибут type можно опустить, он является необязательным и принимает значение text/javascript , если не указан явно. В предыдущих версиях HTML атрибут type необходим.
Статьи по теме
- Вы здесь
- Проверка технологий HTML5
Где размещать тег script
Вставляет код JavaScript на страницу или подключает внешние файлы скриптов.
Время чтения: меньше 5 мин
Открыть/закрыть навигацию по статье
- Кратко
- Пример
- Как понять
- Как пишется
- Атрибуты
- Подсказки
- Ещё примеры
- На практике
- Алёна Батицкая советует
- Почему принято размещать со стилями внутри , а перед закрывающим тегом ? Когда можно нарушить это правило?
- Объясните разницу между , и .
Контрибьюторы:
- Алёна Батицкая ,
- Светлана Коробцева
Обновлено 8 сентября 2022
Кратко
Скопировать ссылку «Кратко» Скопировано
Скрипт — это элемент кода, который позволяет совершать действия, включать анимацию и создавать другие эффекты на странице. Чтобы добавить скрипты, используй тег .
Как и CSS-стили, скрипты можно прописать внутри кода страницы, либо добавить как внешний документ по ссылке.
Теги можно располагать в любом месте в заголовке . . . < / head> или теле . . . < / body> HTML-документа. Но лучше всего добавлять их в самый конец перед закрывающим тегом < / body>.
Пример
Скопировать ссылку «Пример» Скопировано
В этом примере мы подключим скрипты из внешнего файла с расширением .js . Лучше делать именно так, вместо того, чтобы прописывать код скрипта в структуре страницы. Атрибут src указывает путь к файлу.
script src="external.js"> script>Как понять
Скопировать ссылку «Как понять» Скопировано
HTML — создаёт структуру веб-страницы, CSS-стили — её внешний вид, а скрипты — определяют поведение страницы. С помощью скриптов можно «оживить» страницу, добавить анимацию и другие эффекты.
Скрипты пишут на разных языках, самый популярный из которых — JavaScript.
Лучше добавлять скрипты из внешнего файла. Это поможет быстро добавлять одинаковые функции на разные страницы или сайты, а также редактировать и контролировать всё в одном месте. Пользователю это поможет ускорить загрузку страницы, так как файл со скриптами сохранится на компьютере при первой загрузке.
Как пишется
Скопировать ссылку «Как пишется» Скопировано
Тег — парный, его всегда нужно закрывать с помощью < / script>. Если ты подключаешь внешние скрипты по ссылке, то внутри тега ничего писать не надо. Но закрыть тег всё равно придётся.
Если добавить скрипты в код, то выглядеть это будет так:
window.alert("Добавили вот какой-то JavaScript-код")script> window.alert("Добавили вот какой-то JavaScript-код") script>Атрибуты
Скопировать ссылку «Атрибуты» Скопировано
- async — браузер запускает скрипт асинхронно, то есть не дожидаясь загрузки веб-страницы. Впрочем, и сама страница не будет ждать запуска скрипта и продолжит загружаться, как обычно. Если async не указать, то скрипты будут грузиться по очереди. Этот атрибут работает только когда скрипт задаётся внешним файлом.
- defer — откладывает запуск скрипта, пока веб-страница не загрузится целиком.
- src — указывает путь к файлу со скриптами. Это может быть полный URL-адрес файла или относительный адрес, например, src = » / scripts / browser . js» . Файл должен иметь расширение .js . Когда указываешь src , не пиши ничего внутри . . . < / script>.
Подсказки
Скопировать ссылку «Подсказки» Скопировано
Обычно скрипты, которые должны выполняться первыми, помещают в заголовок страницы.
Ещё примеры
Скопировать ссылку «Ещё примеры» Скопировано
Попробуем с помощью скрипта сделать так, чтобы текст увеличивался и уменьшался через каждую пару секунд:
Подключение скриптов Подключение скриптов
Скрипты можно подключить разными способами. Например, описать их прямо внутри HTML-страницы. Но лучше всё же в отдельном файле. const p = document.getElementById("blinking") setInterval(function () if (p.style.fontSize !== "10px") p.style.fontSize = "10px" > else p.style.fontSize = "20px" > >, 2000)DOCTYPE html> html> head> meta charset="utf-8"> title>Подключение скриптовtitle> link rel="stylesheet" href="style.css"> head> body> h1>Подключение скриптовh1> p id="blinking"> Скрипты можно подключить разными способами. Например, описать их прямо внутри HTML-страницы. Но лучше всё же в отдельном файле. p> script> const p = document.getElementById("blinking") setInterval(function () if (p.style.fontSize !== "10px") p.style.fontSize = "10px" > else p.style.fontSize = "20px" > >, 2000) script> body> html>На практике
Скопировать ссылку «На практике» Скопировано
Алёна Батицкая советует
Скопировать ссылку «Алёна Батицкая советует» Скопировано
Почему нужно писать в конце разметки, перед < / body>?
При загрузке страницы браузер читает код сверху вниз. В момент, когда он доходит до тега он останавливается и сперва читает что там, в этом теге . В этот момент вся остальная страница простаивает и не загружается. Если код внутри большой, то это может существенно повлиять на скорость загрузки страницы.
По этой причине принято ставить теги в самом конце разметки, перед закрывающим тегом < / body>. Тогда браузер, дойдя до скриптов, уже загрузит всю страницу и пользователь сможет взаимодействовать с контентом.
Размещение в других частях разметки без очевидной надобности считается плохой практикой.
Один скрипт — один .
Нельзя одновременно написать код внутри тега и в нём же указать атрибут src со ссылкой на внешний файл. Браузер пойдёт по ссылке за кодом, а то, что написано внутри проигнорирует.
console.log("Hello, world!"); // Этот код будет проигнорирован script src="./js/main.js"> console.log("Hello, world!"); // Этот код будет проигнорирован script>Поэтому если нужно и подключить внешний файл и написать код внутри разметки — используй два отдельных тега.
Порядок имеет значение.
Если ты используешь какие-то сторонние библиотеки при разработке сайта, то обрати внимание на порядок подключения скриптов — на порядок, в котором следуют теги script с путями до разных файлов.
Обычно достаточно в точности скопировать код из инструкции по работе с библиотекой.
Начинающие разработчики частенько игнорируют порядок подключения и потом ищут причины почему у них не работает то, что работать должно
Самым частым примером является подключение библиотеки, написанной с использованием jQuery. Чтобы код верно работал, в первом теге script нужно подключить саму библиотеку jQuery, а уже затем, ниже, в следующем теге script подключать остальной код библиотеки.
Библиотекой называют код, написанный сторонним разработчиком или группой разработчиков, и доступный для свободного использования в качестве готовой подпрограммы на вашем сайте. Например, эта библиотека пригодится, если нужен простой удобный слайдер.
На собеседовании
Скопировать ссылку «На собеседовании» Скопировано
Почему принято размещать со стилями внутри , а перед закрывающим тегом < / body>? Когда можно нарушить это правило?
Скопировать ссылку «Почему принято размещать link со стилями внутри head, а script перед закрывающим тегом /body? Когда можно нарушить это правило?» Скопировано
Скопировать ссылку «Марина Дорошук отвечает» Скопировано
Когда мы размещаем стили внутри тега , браузер понимает как и с какими стилями отрисовывать контент при первом рендере. То есть, чтобы отобразить страницу, браузеру нужно знать какой контент нарисовать (HTML) и как должны выглядеть элементы (CSS). Если браузер не получит CSS заранее, то HTML-элементы сначала отобразятся со стилями по умолчанию, а после загрузки CSS применяться новые стили. Это вызовет мигание контента. Добавление тега co стилями в начало документа предотвращает повторную перерисовку.
Тег обычно идёт перед закрывающимся тегом < / body>. Это даёт уверенность, что элементы, к которым идёт обращение в скрипте, существуют на странице.
Мы можем размещать скрипт в , если он должен выполнится первым и не полагается на то, существует ли элемент на странице. Или если добавляем атрибуты async или defer к тегу . Про их отличия можно почитать подробнее в доке про .
defer сообщает браузеру, что скрипт нужно загружать в фоновом режиме и запустить его, как только DOM-дерево будет полностью построено.
Ещё один способ — указать атрибут , который говорит браузеру, что скрипт нужно запустить как модульный. Модульные скрипты по дефолту являются отложенными, то есть равносильно , и указание defer не будет иметь никакого эффекта.
Скопировать ссылку «Объясните разницу между script, script async и script defer.» Скопировано
Это вопрос без ответа. Вы можете помочь! Почитайте о том, как контрибьютить в Доку.