Файлы Web-страниц, написанные на языке HTML, определяют внешний вид в окне браузера таких элементов, как текст, таблицы и изображения. При этом HTML работает только со статическими элементами.
JavaScript — это язык сценариев (scripting language), который может применяться в файлах Web-страниц наряду с HTML, например, для придания Web-страницам свойств диалоговых окон.
Эти интерактивные возможности позволяют разработчику динамически управлять элементами Web-страниц. JavaScript можно также применять для изменения элементов Web-страницы при взаимодействии с ней пользователя. Например, можно предусмотреть, чтобы текст, отображаемый в текстовом поле формы, изменялся, когда пользователь щелкает на кнопке.
Сценарий JavaScript может выполняться в браузере без каких-либо дополнительных программных средств.
Сценарий JavaScript может быть добавлен в Web-страницу между дескрипторами <script>. Операторы JavaScript, включенные между дескрипторами <script>, выполняются при загрузке Web-страницы в браузер.
Дескрипторы <script> могут располагаться в любом месте между дескрипторами <head> или <body>. В файле одной Web-страницы может содержаться несколько наборов дескрипторов <script>.
Дескриптору <script> передаются два атрибута: type и language. Атрибут type может принимать одно из значений, соответствующих известным типам MIME, такое как text/ javascript. (MIME — Multipurpose Internet Mail Extensions — многоцелевые расширения электронной почты в Internet. Представляет собой набор стандартов для передачи мультимедийной информации посредством электронной почты.) Атрибут language — это еще один способ задания используемого языка сценариев. В случае JavaScript этот атрибут просто устанавливается равным javascript.
Если оператор JavaScript отображает в окне браузера какой-либо текст, то размещение текста соответствует размещению дескрипторов <script> в файле Web-страницы. Например, если HTML-файл содержит заголовок, за которым следует дескриптор <script>, предназначенный для вывода некоторого текста, сценарий JavaScript должен следовать непосредственно после заголовка HTML-файла.
С дескриптором <script> можно использовать еще один атрибут — src. Он может указывать на URL внешнего файла, содержащего сценарий JavaScript.
Внешний файл может не включать дескрипторов <script> и содержать только операторы JavaScript. Он может также не содержать расширения html. Обычно внешний файл JavaScript имеет расширение js.
Внешний файл JavaScript может располагаться в любом месте сети Web, и на него можно сослаться помощью ключевого слова протокола http://, за которым следует Web-адрес внешнего файла.
Например, с помощью оператора <script src = "myfile.js"> можно получить доступ к внешнему файлу JavaScript с именем myfile.js, расположенному в том же каталоге, что и HTML-файлу.
Работа с функциями.
Определенные фрагменты программы можно сгруппировать в логически завершенную структуру, называемую функцией. Функцию можно вызвать и получить к ней доступ в любой момент. Функции можно передать параметры, а функция возвращает значение. В JavaScript объявление функции выглядит, как ключевое слово function, за которым следует имя функции.
Непосредственно за именем функции всегда указываются круглые скобки. В них содержатся параметры функции, однако указывать их необязательно.
Обратиться к функции можно как до, так и после ее объявления.
Обработчики событий
Обработчики событий JavaScript представляют собой небольшие подпрограммы, связывающие действия пользователей со сценариями, которые необходимо выполнить в ответ на эти действия. К таким действиям относятся щелчки мышью, нажатие клавиш клавиатуры, выбор или изменение элементов формы, загрузка и выгрузка Web-страницы.
Обработчики событий JavaScript можно поместить в дескрипторы HTML так же, как и другие атрибуты. Обработку события можно отождествить со строкой программы JavaScript или с функцией JavaScript, объявленной в некотором месте Web-страницы.
Например, обработчик события onclick можно ввести как атрибут дескриптора кнопки <button> и отождествить с функцией blink следующим образом.
<button onclick="blink();"/>
Данный дескриптор не только отображает в Web-странице кнопку. После щелчка на этой кнопке выполняется функция blink () JavaScript.
Существует около десяти обработчиков событий JavaScript, которые можно применить при формировании Web-страницы, поместив их в различные места Web-страницы в зависимости от типа события.
События, генерируемые мышью.
Срабатывает обработчик событий
onclick - если пользователь щелкает кнопкой мыши один раз
ondblclick - если пользователь делает двойной щелчок
onmousedown - кнопка мыши нажимается
onmouseup - при отпускании кнопки мыши
onmouseover - сигнализирует о том, что указатель мыши расположен на некотором элементе
onmouseout - указатель мыши перемещается с элемента.
События, генерируемые клавиатурой.
Срабатывает обработчик событий
Onkeypress - клавиша на клавиатуре нажимается. Значение, соответствующее нажатой клавише, передается в объект window.event.keycode.
onkeydown - срабатывает после того, как клавиша нажимается и удерживается в нажатом состоянии
onkeyup - нажатая клавиша отпущена.
События выбора.
Срабатывает обработчик событий
onfocus - элементу передан фокус. Нажав клавишу <Таb>, можно изменить этот фокус.
onblur - когда элемент теряет фокус
onselect - при выборе элемента
Разнородные события.
onchange - происходит всякий раз, когда данные элемента формы изменяются.
onload - используется для установления момента полной загрузки Web-страницы. onunload - Web-страница выгружена. Это происходит, когда пользователь покидает текущую страницу или щелкает на кнопке браузера Обновить (Refresh).
onabort - при отмене операции загрузки Web-страницы в браузер
В HTML-формах имеются две кнопки (submit и reset), выполняющие специфические функции. Эти же функции можно инициировать с помощью обработчиков событий onsubmit и onreset.
Объект Navigator.
В JavaScript существует несколько полезных объектов для определения типа системы, которая используется для просмотра созданных Web-страниц. Зная свойства операционной среды пользователя, можно соответствующим образом настроить содержимое Web-страниц.
Например, некоторые возможности JavaScript отличаются для браузеров Microsoft Internet Explorer и Netscape Navigator.
Определив, какой браузер используется, вы получаете возможность применять те или иные средства JavaScript в зависимости от типа браузера.
Объект navigator обладает многими свойствами и методами, необходимыми для определения типа системы пользователя. К свойствам объекта navigator относятся следующие свойства:
appCodeName, appName, appVersion, platform и userAgent.
Объект navigator содержит один метод — javaEnabled(). Свойства объекта navigator рассматриваются в разделе "Определение типа броузера, с которым работает пользователь".