Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASCII и latin.docx
Скачиваний:
3
Добавлен:
08.08.2019
Размер:
190.09 Кб
Скачать

13.3. Обработчики событий в html

JavaScriptкод, расположенный в теге <script>, исполняется один раз, когда со

держащий его HTMLфайл считывается в вебброузер. Такие статические сцена

рии не могут динамически реагировать на действия пользователя. В динамиче

ских программах определяются обработчики событий, автоматически вызывае

мые вебброузером при возникновении определенных событий, например при

щелчке на кнопке в форме. События в клиентском языке JavaScript генерируются

HTMLобъектами (такими как кнопки), поэтому обработчики событий определя

ются как атрибуты этих объектов. Например, чтобы задать обработчик события,

который вызывается, когда пользователь щелкает на флажке в форме, код обра

ботчика указывается в качестве атрибута HTMLтега, определяющего флажок:

<input type="checkbox" name="options" value="gifwrap"

onclick="gifwrap = this.checked;"

>

Здесь нас интересует атрибут onclick. Строковое значение атрибута onclick мо

жет содержать одну или несколько JavaScriptинструкций. Если имеется не

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

Когда с флажком происходит указанное событие (в данном случае щелчок мы

ши), исполняется JavaScriptкод, указанный в этой строке.

В определение обработчика события можно включать любое количество Java

Scriptинструкций, но обычно для обработки события в атрибут вставляется вызов13.3. Обработчики событий в HTML 265

функции, которая определена гденибудь в другом месте между тегами <script>

и </script>. Это позволяет держать большую часть JavaScriptкода внутри тегов

<script> и ограничивает степень взаимопроникновения JavaScriptи HTMLкода.

Примечательно, что атрибуты обработчиков событий являются не единствен

ным местом определения JavaScriptобработчиков. В главе 17 показано, что су

ществует возможность определять обработчики событий для HTMLэлементов,

располагая JavaScriptкод внутри тега <script>. Некоторые JavaScriptразработ

чики призывают отказаться от использования HTMLатрибутов для определе

ния обработчиков событий, мотивируя это требование парадигмой ненавязчиво

го JavaScriptкода, в соответствии с которой необходимо полное отделение со

держимого от поведения. Согласно такому стилю программирования весь Java

Scriptкод должен размещаться во внешних файлах, ссылки на которые должны

оформляться в виде атрибутов src тегов <script>. Этот внешний JavaScriptкод

во время своей работы может определить любые обработчики событий, какие

только потребуются.

Намного более подробно события и их обработчики обсуждаются в главе 17, но

многие примеры их использования мы уже неоднократно рассматривали. В гла

ве 17 содержится полный список обработчиков событий, а наиболее распростра

ненные из них мы перечислим здесь:

onclick

Этот обработчик поддерживается всеми элементами форм, подобными кноп

кам, а также тегами <a> и <area>. Он вызывается, когда пользователь щелкает

на элементе. Если обработчик onclick возвращает false, броузер не выполняет

стандартное действие, связанное с элементом или ссылкой, например, не от

крывает ссылку (для тега <a>) или не передает данные формы (для кнопки

Submit).

onmousedown, onmouseup

Эти два обработчика во многом похожи на onclick, но вызываются по отдель

ности, когда пользователь нажимает и отпускает кнопку мыши. Большинст

во элементов документа поддерживают эти обработчики.

onmouseover, onmouseout

Эти два обработчика события вызываются, когда указатель мыши соответст

венно оказывается на элементе документа или покидает его.

onchange

Этот обработчик события поддерживается тегами <input>, <select> и <text

area>. Он вызывается, когда пользователь изменяет значение, отображаемое

элементом, а затем перемещает фокус с помощью клавиши табуляции либо

другим способом.

onload

Этот обработчик событий может использоваться в теге <body>. Данное событие

возникает, когда документ и все содержимое из внешних файлов (например,

изображения) полностью загружено. Обработчик onload часто используется

для запуска программного кода, который манипулирует содержимым доку

мента, т. к. это событие свидетельствует о том, что документ достиг состоя

ния готовности и его можно изменять.266 Глава 13. JavaScript в веб*броузерах

Реализацию обработчиков событий можно найти в интерактивном сценарии вы

плат по закладной в примере 1.3. HTMLформа в этом примере содержит не

сколько атрибутов обработчиков событий. Тело этих обработчиков просто: они

лишь вызывают функцию calculate(), определенную в другом месте внутри тега

<script>.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]