HTML тег <script>
Поддержка браузерами
Описание
HTML тег <script>
используется для добавления JavaScript-кода непосредственно в HTML-документ.
Есть два способа добавления JavaScript-кода с помощью элемента <script>
:
- JavaScript-код можно расположить непосредственно внутри элемента
<script>
. - Подключить внешний файл с JavaScript-кодом.
Сценарий, расположенный непосредственно внутри элемента <script>
, называют встроенным. Сценарий, расположенный внутри внешнего файла, называют внешним.
Обратите внимание, что, при написании встроенного JavaScript-кода, использовать строку "<script>"
в своём коде нельзя, так как она будет интерпретироваться браузером как закрывающий тег. Чтобы решить эту проблему, экранируйте символ /: "<\/script>
".
Подключение внешнего файла выполняется с помощью атрибута src
. Внешним файлам, содержащим JavaScript-код, дают расширение .js
:
<script src="myJs.js"></script>
Сам внешний файл должен содержать только JavaScript-код (без тегов <script>
и </script>
).
Если подключается внешний сценарий, то внутри того же самого элемента <script>
нельзя одновременно располагать встроенный сценарий.
Элемент <script>
может располагаться в любом месте внутри элемента <head> и/или <body> и использоваться любое количество раз.
Независимо от того, как JavaScript-код добавляется на страницу, элементы <script>
обрабатываются в том порядке, в котором они расположены в HTML-коде, при условии, что у них нет атрибутов defer
и async
. Код первого элемента <script>
должен быть полностью интерпретирован, чтобы можно было приступить ко второму элементу <script>
, второй элемент должен быть полностью обработан перед третьим, и т. д.
Атрибуты
- async:
- Указывает, что нужно немедленно начать загрузку сценария с сервера и сразу же после его загрузки перейти к выполнению сценария (одновременно с загрузкой остального содержимого страницы). Если с атрибутом
async
определено несколько элементов<script>
, то первым начнёт выполняться тот сценарий, который раньше загрузится. Действителен только для внешних сценариев.
Возможные значения логического атрибутаasync
:<script async> <script async="async"> <script async="">
Примечание: атрибут
async
не поддерживается в IE9 и более ранних версиях. - defer:
- Указывает, что сценарий будет загружен немедленно, но его выполнение можно безопасно отложить до тех пор, пока не будет загружено остальное содержимое страницы. Если с атрибутом
defer
определено несколько элементов<script>
, то сценарии будут выполняться в том порядке, в котором они расположены в HTML-коде, то есть первым выполнится тот сценарий, который расположен в коде раньше. Действителен только для внешних сценариев.
Возможные значения логического атрибутаdefer
:<script defer> <script defer="defer"> <script defer="">
- type:
- Идентифицирует скриптовый язык, используемый в коде встроенного или внешнего сценария. Поддерживаемые значения MIME-типа:
text/javascript
text/ecmascript
application/ecmascript
application/javascript
text/vbscript
type
можно опустить (при отсутствии данного атрибута по умолчанию используется значениеtext/javascript
). - charset:
- Указывает кодировку символов, используемую во внешнем файле со сценарием. Атрибут
charset
используется только в том случае, если кодировка во внешнем файле со сценарием отличается от кодировки в html-документе. - src:
- Указывает URL-адрес внешнего файла со сценарием.
Стиль по умолчанию
script { display: none; }
Пример
<script type="text/javascript"> document.write("Hello World!"); </script>
Результат данного примера в окне браузера: