Подключение скрипта JavaScript. Подключение скриптов JavaScript в HTML

Последнее обновление: 1.11.2015

Еще один способ подключения кода JavaScript на веб-страницу представляет вынесение кода во внешние файлы и их подключение с помощью тега

Итак, в прошлой теме мы создали html-страницу index.html, которая находится в каталоге app. Теперь создадим в этом каталоге новый подкаталог. Назовем его js . Он будет предназначен для хранения файлов с кодом javascript. В этом подкаталоге создадим новый текстовый файл, который назовем myscript.js . Файлы с кодом javascript имеют расширение .js . То есть у нас получится следующая структура в папке app:

Откроем файл myscript.js в текстовом редакторе и определим в нем следующий код:

Var date = new Date(); // получаем текущую дату var time = date.getHours(); // получаем текущее время в часах if(time < 13) // сравниваем время с число 13 alert("Доброе утро!"); // если время меньше 13 else alert("Добрый вечер!"); // если время равно 13 и больше

Для совместимости с кодировкой страницы index.html для файла с кодом javascript также желательно устанавливать кодировку utf-8.

Здесь уже больше выражений языка javascript. Первое выражение получает текущую дату и присваивает ее переменной date . С помощью второй инструкции получаем время в часах. Дальше мы сравниваем полученное время с числом 13 и в зависимости от результатов проверки выводим первое или второе сообщение.

Теперь подключим этот файл на веб-страницу index.html:

JavaScript Первая программа на JavaScript

Чтобы подключить файл с кодом javascript на веб-страницу, применяется также тег , у которого устанавливается атрибут src . Этот атрибут указывает на путь к файлу скрипта. В нашем случае используется относительный путь. Так как веб-страница находится в одной папке с каталогом js, то в качестве пути мы можем написать js/myscript.js .

Также надо учитывать, что за открывающим тегом script должен обязательно следовать закрывающий

И после открытия файла index.html в браузере отобразится сообщение:

В отличие от определения кода javascript вынесение его во внешние файлы имеет ряд преимуществ:

    Мы можем повторно использовать один и тот же код на нескольких веб-страницах

    Внешние файлы javascript бразуер может кэшировать, за счет этого при следующем обращении к странице браузер снижает нагрузка на сервер, а браузеру надо загрузить меньший объем информации

    Код веб-страницы становится "чище". Он содержит только html-разметку, а код поведения хранится во внешних файлах. В итоге можно отделить работу по созданию кода html-страницы от написания кода javascript

Поэтому, как правило, предпочтительнее использовать код javascript во внешних файлах, а не в прямых вставках на веб-страницу с помощью элемента script.

Перед тем как использовать JavaScript, его необходимо добавить в HTML документ . Сделать это можно с помощью элемента двумя способами:

  • Определить встроенный сценарий, который располагается непосредственно между парой тегов и
  • Подключить внешний файл с JavaScript-кодом
  • Примечание: элемент может быть расположен в любом месте внутри элемента и/или внутри элемента и использоваться любое количество раз.

    Встроенный сценарий

    JavaScript код можно вставить непосредственно внутри элемента . Сценарий, расположенный непосредственно внутри элемента, называется встроенным .

    Название документа // JavaScript-код // JavaScript-код

    Внешний сценарий

    В HTML документ можно также добавить JavaScript код, расположенный во внешнем файле. Сценарий, расположенный внутри внешнего файла, называется внешним . Подключение внешнего файла выполняется с помощью атрибута src тега следующим образом:

    • Создадим папку и назовём её к примеру example , внутри этой папки создаём текстовый файл с расширением.js , например myscript.js (имя файла может быть любым), открываем его и добавляем строку JavaScript-кода:
    alert("Добро пожаловать!");

    Примечание: если вы не знаете как менять расширение у файлов, то можете прочитать об этом в разделе: смена расширения файла .

    Обратите внимание, что внутри внешнего файла JavaScript-код не нужно располагать между тегами и . Сохраняем изменения в файле и закрываем его.

    • Теперь создадим ещё один файл и назовём его myscript2.js , открываем его и добавляем следующую строку JavaScript кода:
    document.write("Это моя домашняя страница");

    Сохраняем изменения в файле и закрываем его.

    • И последнее, что нам осталось сделать, это создать HTML-документ, к которому будут подключены наши созданные два файла с внешними сценариями. В той же папке, где хранятся наши два сценария (example), создаём HTML-документ и называем его к примеру test.html . Теперь c помощью элемента подключаем два внешних файла c JavaScript-кодом:
    Название документа

    Вот и всё! Сохраняем изменения в HTML-документе, открываем его в браузере и смотрим результат. У вас должно получиться нечто подобное:



    Будьте внимательны, так как мы указали с помощью тега кодировку utf-8 в HTML-документе, кодировка самих файлов (test.html, myscript.js и myscript2.js) также должна быть utf-8 .

    Примечание: если подключается внешний сценарий, то внутри того же самого элемента нельзя одновременно располагать встроенный сценарий.

    Сравнение внешних и встроенных сценариев

    Использование внешних сценариев даёт ряд преимуществ перед встроенными:

    • HTML-документы становятся проще для редактирования, так как из них можно убрать большие блоки JavaScript-кода и отделить структуру от поведения страницы.
    • Если один и тот же JavaScript-код, используется в нескольких HTML-документах, его лучше подключать в качестве внешнего сценария. Это намного облегчает поддержку и редактирование кода, так как при внесении изменений отпадает необходимость редактировать каждый HTML-документ в отдельности.
    • Внешний сценарий загружается браузером всего один раз, при первом посещении страницы. Переходя на другие страницы, использующие тот же сценарий, он будет извлекаться из кэша браузера, что в свою очередь ускорит загрузку и обработку содержимого страницы.

    Примечание: располагать сценарий (как внешний так и встроенный) лучше всего в конце HTML-документа, перед закрывающим тегом . Такое расположение сценария позволяет браузеру загружать страницу быстрее, так как сначала загрузится контент страницы, а потом будет загружаться код сценария.

    От автора: приветствую вас, друзья. В этой статье мы с вами узнаем, как перенести наш код JavaScript во внешний файл и подключить скрипт JavaScript. Статья ориентирована на новичков, начинающих свое изучение языка JavaScript.

    Итак, начнем с вопроса, а зачем вообще нужно выносить код JavaScript во внешний файл? Все просто. Представьте, что ваш скрипт занимает десятки или сотни строк кода. Или даже больше. И, конечно же, этот скрипт нам, скорее всего, потребуется на каждой странице нашего сайта. Согласитесь, будет совсем нехорошо в этом случае дублировать в каждом файле эти сотни строк кода. Да и просто наличие не HTML кода в документе HTML будет смотреться не очень правильно и не очень красиво.

    Именно поэтому код JavaScript принято выносить в отдельный файл, который и подключается к страничке. Собственно, все так же, как и в случае с файлами стилей. Как же подключить скрипт JavaScript к основному файлу? Очень просто. Для этого используются уже знакомый нам тег , к которому добавляется атрибут src, точно так же, как и в случае с картинками. Ну и, как вы уже догадались, в атрибуте src указывается путь к подключаемому скрипту JavaScript.

    Давайте попробуем перенести нашу программу, состоящую из одной строки кода, во внешний файл и подключим этот файл. Назовем этот файл, к примеру, scripts.js:

    JavaScript. Быстрый старт

    alert("Привет!");

    Если теперь обновить страничку, то ничего не изменится, наш скрипт работает и, по-прежнему, выводит модальное окно с приветствием.

    JavaScript. Быстрый старт

    Изучите основы JavaScript на практическом примере по созданию веб-приложения

    На что стоит обратить внимание при подключении скриптов? Мы подключили скрипт в конце документа, перед закрывающим тегом body. Ранее практиковалось подключение скриптов в начале документа, в тегах head. Однако сегодня так делать не рекомендуется и скрипты рекомендуют подключать именно в конце документа. Почему так?

    Давайте попробуем перенести подключения между тегами head:

    Что мы видим? Ничего, кроме модального окна. Никакого контента нет. В этом и суть. Когда внешний скрипт подключается в начале документа, браузер начинает загружать его и пытается выполнить. И пока загрузка и выполнение скрипта не будут завершены, браузер не покажет часть документа, следующую после подключаемого файла.

    А теперь представьте, что этот файл по каким-то причинам загружается крайне медленно. В результате пользователю придется ждать, и порой он может просто не дождаться. Именно поэтому скрипты рекомендуется подключать в конце документа, перед закрывающим тегом body.

    Но что делать, если некая библиотека требует подключения именно в начале документа? Как быть в этом случае? В этом случае нас выручат атрибуты async и defer, которые позволяют браузеру загружать скрипты асинхронно, т.е. браузер начнет загружать скрипт, но при этом не остановит показ документа. Попробуем поочередно использовать данные атрибуты:

    < ! -- вариант1 -- >

    < ! -- вариант2 -- >

    В обоих случаях мы получим одинаковый результат, скрипт подключается, не прерывая показ документа:

    В чем же отличие атрибутов async и defer друг от друга? Атрибут defer сохраняет последовательность подключения внешних скриптов, т.е. первым всегда выполнится тот скрипт, который подключается выше. Это важно в том случае, когда мы подключаем несколько скриптов и какой-то из них может зависеть от другого. В этом случае основной скрипт должен подключаться раньше зависимого. Атрибут defer гарантирует соблюдение порядка. Атрибут async же обеспечит выполнение скрипта сразу после его загрузки. Поэтому такой вариант не всегда подойдет, поскольку зависимый скрипт может загрузиться раньше основного.

    На этом статья подошла к концу. Если вы хотите больше узнать о JavaScript, тогда рекомендую обратить свое внимание на и отдельный . Удачи!

    JavaScript. Быстрый старт

    Изучите основы JavaScript на практическом примере по созданию веб-приложения

    Инструкция

    Подключите к документу скрипт из внешнего источника, адресуемого известным URI. Используйте HTML-элемент с заданным значением атрибута src. Отредактируйте документ, добавив в него конструкцию вида:

    Здесь в качестве значения URI_скрипта должен быть указан URI, идентифицирующий ресурс, из которого будут загружены данные сценария.
    В качестве значения атрибута charset следует указать кодировку символов скрипта, если она отличается от кодировки символов документа. Кодировка документа определяется на основании данных поля Content-Type заголовка HTTP-ответа сервера или значения атрибута content элемента META с атрибутом http-equiv, установленным в Content-Type.
    Подключение скриптов подобным способом зачастую производится в заголовке документа (элементы SCRIPT располагаются внутри элемента HEAD) и немедленное их выполнение не требуется. В этом случае имеет смысл использовать атрибут defer для отложенной интерпретации текста сценария.

    Подключите скрипт, внедрив его непосредственно в документ. Добавьте в разметку документа элемент SCRIPT, имеющий содержимое, представляющее собой JavaScript-код. Используйте конструкцию вида:

    // текст кода сценария

    // текст кода сценария

    // текст кода сценария

    Обратите внимание на HTML-комментарии, обрамляющие код скрипта. Они необходимы для обеспечения совместимости со старыми моделями браузеров.

    Подключите скрипт при помощи указания "javascript:" в качестве дескриптора протокола URI целевого якоря элемента A. Создайте в документе ссылку, со значением атрибута href вида:

    javascript:

    Здесь в качестве значения следует записать вычисляемое выражение на языке сценариев JavaScript. При этом несколько предложений языка можно объединить в одно выражение при помощи операторных скобок, например:

    text

    Добавьте скрипты в документ в качестве кода встроенных обработчиков событий элементов. Для этого определите встроенные обработчики нужных событий выбранных элементов при помощи добавления этим элементам соответствующих атрибутов. В качестве значений атрибутов введите фрагменты JavaScript-кода. Например, добавить код в качестве обработчика события одинарного щелчка мышью по элементу DIV, можно следующим образом:

    Содержимое элемента

    С перечнем событий элементов, которые должны поддерживаться конформными пользовательскими агентами, можно ознакомиться в разделах Events спецификаций объектных моделей документов уровней 2 и 3 (DOM2 и DOM3) на сайте консорциума W3C w3c.org.

    Возможности HTML/CSS позволяют создавать красивые и динамичные страницы. помогает разработчику назначать элементам страницы функциональность, обрабатывать события, организовывать диалог с посетителем и обеспечивать обмен данными с сервером.

    HTML-страницы и CMS

    Современное интернет-программирование все чаще использует системы управления контентом (Content Management System - CMS). В этом случае подключение каких-либо файлов решается автоматически.

    В этом примере все кнопки, добавленные на страницу сайта, могут быть оснащены дополнительной функциональностью, как через событие onclick, так и путем подключения дополнительного файла скриптов.

    Подключение шаблонов и фреймворков (например, jQuery) делается автоматически. JavaScript - это неотъемлемая составляющая браузера. Любая CMS это учитывает и использует максимально эффективно. Как правило, CMS в полной мере использует механизм AJAX, наиболее прогрессивные инструменты JS, но оставляет разработчику возможность корректировать и уточнять функционал страницы в браузере, особенно контролировать обработку событий.

    Традиционное подключение JavaScript к HTML

    Вариантов не так много. Можно вставить JS код тегом script в саму страницу (3) или подключить как внешний файл (1). У каждого варианта свои плюсы. Обычно разработчики используют оба варианта одновременно.

    JavaScript - это события, DOM и полное управление всеми элементами страницы. Вариант 2 - это непосредственное подключение к телу страницы, которое срабатывает, когда страница будет полностью загружена.

    Внешние файлы и серверное управление

    Формирование HTML-документа при разработке на базе CMS и при ручном создании веб-ресурса программируется. Обработка событий, создание элементов страницы и внешних файлов может производиться так, как это удобно в каждом конкретном случае, в реальном масштабе времени.

    PHP интерпретатор, формируя страницу, может создавать код страницы, JavaScript-файлы, рисунки, компоновать структуру файлов и папок. Через области видимости переменных и данных разработчик может переключать функционал.

    Обычно HTML-документ обеспечивает несколько вариантов работы с посетителем. Например, в зависимости от региона, пола, возраста и пр. могут подключаться те или иные возможности сайта, которые удобно и целесообразно иметь на одной странице.

    В этом примере то, как подключить JavaScript к HTML-элементам страницы, показано на примере событий мышки. Такой вариант использования возможностей JS бывает необходим, когда функциональность элемента нужно менять в процессе работы страницы.

    Функциональность элементов страницы

    JavaScript ориентирован на обслуживание событий на элементах страницы и дерева объектов DOM (Document Object Model). С такой точки зрения вопрос "Как подключить JavaScript к HTML-элементам?" решается изначально.

    Например, все поля формы для ввода данных могут сразу получить JS-обработчики для валидации (проверки) данных на корректность. Дата должна быть датой, число - числом, а строка символов должна содержать только корректные символы.

    Контроль ввода данных - важный функционал, и нет никакого смысла решать его в реальном времени и подключать обработчик JS в процессе нахождения посетителя на странице. Целесообразно заранее предусмотреть форму по структуре, содержанию и функциональности проверки. Задачу, как подключить JavaScript к HTML-элементам формы, можно решить сразу.

    Иная ситуация будет на элементах при решении задачи передачи данных посредством механизмов Drag and Drop. В большинстве случаев придется динамично менять обработчики. Захват элемента для перемещения - это одно событие, собственно перемещение через границы других элементов - другое событие.

    Вопрос как подключить JavaScript к HTML-элементам страницы, которые «встречаются по дороге», может быть не только динамичным, но и непредсказуемым.

    Динамика и обработка событий

    Особенность JavaScript - изначально распределенные алгоритмы и события, которые могут сработать в самом непредсказуемом варианте. Программа (скрипт) на JS это далеко не программа на C/C++, PHP или Perl. Обычные языки программирования допускают события, динамику типов данных, параллельные вычисления, но оригинальность JS и его тесная связь с DOM привносит специфику в программирование на этом языке и, что очень важно, правильное размещение кода.

    Все скрипты JS сливаются в единое пространство, но правильное размещение переменных, функций, обработчиков событий и последовательности выполнения операций имеет существенное значение.

    Использование серверного языка PHP внутри JavaScript кода удобнее делать, когда это код непосредственно вставлен в HTML-документ. Не принято размещать PHP-код внутри внешнего файла *.js, хотя воображение современного разработчика мало чем ограничено, если он работает без той или иной системы управления сайтом.

    Важно иметь в виду: JavaScript - это изначально распределенные алгоритмы и события. Серверные языки - это последовательности операций, алгоритмы действий, которые выполняются до того момента, как страница попадает в браузер. Ответ на вопрос "Как подключить JavaScript к HTML-документу?" будет зависеть не только от логики алгоритма, но и времени решения.