Обработчики событий
Обработчики событий -
это операторы или функции, которые выполняются в случае наступления
определенного события (нажатия на кнопку, изменения содержимого текстового поля,
щелчка мышью на гиперссылке и т.д.).
Обработчик во многом аналогичен функции,
но вызывается он не JavaScript-программой, а самим браузером.
Как и обычные функции, обработчики событий могут содержать
оператор возврата return значение.
Исходный HTML-текст выглядит так:
<form> <input type="button" value="Click me!" onClick="alert('Hello!')"> </form>
В этом примере использован обработчик событий
onClick
,
который срабатывает в тот момент, когда пользователь
щелкнул мышью на кнопке.
Пример 2. Наведите указатель мыши на эту
гиперссылку
-
на экране появится сообщение mouseOver!
Теперь щелкните мышью на ссылке
-
появится сообщение click!
Исходный HTML-текст выглядит так:
<A HREF="#example2" onMouseOver="alert('mouseOver!');return true" onClick="alert('click!');return false" >гиперссылка</A>
Здесь два обработчика событий:
onMouseOver
срабатывает, когда указатель мыши оказался над ссылкой,
onClick
-
при щелчке мыши.
JavaScript 1.0 поддерживает следующие обработчики событий:
onBlur
(для элементов HTML-формы)
onChange
(для элементов HTML-формы)
onClick
(для элементов HTML-формы и гиперссылок)
onFocus
(для элементов HTML-формы)
onLoad
(для окна)
onMouseOver
(для гиперссылки)
onMouseOut
(для гиперссылки)
onSubmit
(для HTML-формы)
В JavaScript 1.1 (Netscape Navigator 3) добавлен ряд новых обработчиков событий, не поддерживаемых в Internet Explorer 3:
onBlur
(для окна)
onFocus
(для окна)
onUnload
(для окна)
onMouseOut
(для гиперссылки)
onLoad
(для изображения)
onError
(для окна и для изображения)
onReset
(для HTML-формы)
Новая группа обработчиков событий появилась в JavaScript 1.2;
среди них, например,
onMouseDown
и
onMouseUp
.
Здесь мы не будем их рассматривать.
В таблице перечислены обработчики событий JavaScript 1.0, а также наиболее часто используемые обработчики JavaScript 1.1.
Обработчик | Сработает, если... |
---|---|
onBlur <TEXTAREA name="..." cols=XX rows=XX onBlur="код"> <INPUT type="..." size=XX name="..." value="..." onBlur="код">Обработчик поддерживается для type="text" ,
"password" ,
"file" ,
а во многих браузерах и для других типов
<INPUT> .
|
Пользователь убрал курсор из текстового поля (элемента формы), для которого задан обработчик. |
onBlur <BODY ... onBlur="код"> <FRAMESET ... onBlur="код">Не поддерживается в MSIE3! |
Пользователь сделал "текущим" другое окно (например, щелчком мыши); окно, для которого задан обработчик, перестало являться "текущим". |
onChange <TEXTAREA name="..." cols=XX rows=XX onChange="код"> <SELECT name="..." size=XX onChange="код"> <INPUT type="..." size=XX name="..." value="..." onChange="код">Обработчик поддерживается для type="text" ,
"password" ,
"file" ,
а во многих браузерах и для других типов
<INPUT> .
|
Пользователь изменил значение элемента формы, для которого задан обработчик. |
onClick <A HREF="..." onClick="код"> <INPUT type="..." name="..." value="..." onClick="код">В теге <INPUT>
обработчик поддерживается для
type="button" ,
"checkbox" ,
"radio" ,
"reset" ,
"submit" .
|
Пользователь щелкнул мышью на гиперссылке или на элементе формы. |
onFocus <TEXTAREA name="..." cols=XX rows=XX onFocus="код"> <INPUT type="..." size=XX name="..." value="..." onFocus="код">Обработчик поддерживается для type="text" ,
"password" ,
"file" ,
а во многих браузерах и для других типов
<INPUT> .
|
Пользователь поместил курсор в текстовое поле (щелкнул мышью на элементе формы), для которого задан обработчик. |
onFocus <BODY ... onFocus="код"> <FRAMESET ... onFocus="код">Не поддерживается в MSIE3! |
Пользователь сделал "текущим" окно, для которого задан обработчик (например, щелчком мыши). |
onLoad <BODY ... onLoad="код"> <FRAMESET ... onLoad="код"> |
Браузер закончил загрузку Web-страницы. |
onMouseOver <A HREF="..." onMouseOver="код"> <AREA shape="..." coords="..." HREF="..." onMouseOver="код"> |
Пользователь навел указатель мыши на гиперссылку. |
onMouseOut <A HREF="..." onMouseOut="код"> <AREA shape="..." coords="..." HREF="..." onMouseOut="код">Не поддерживается в MSIE3! |
Пользователь убрал указатель мыши с гиперссылки. |
onSubmit <FORM action="..." onSubmit="код"> |
Пользователь отправил заполненную форму (нажатием клавиши Enter или щелчком мыши на кнопке Submit). |
Внимание! В тегах
<BODY>
опущены параметры
bgcolor
,
background
,
text
,
link
,
vlink
,
alink
.
В тегах
<FRAMESET>
опущены параметры
cols
,
rows
,
border
,
frameborder
,
framespacing
.
Возвращаемые значения.
Как и обычные функции, обработчики событий могут содержать оператор возврата.
В обработчиках обычно используется оператор возврата
return выражение
,
где
выражение
имеет значение
true
или
false.
В зависимости от того, какое значение возвращено обработчиком,
браузер выполнит (или не выполнит) какие-либо
дополнительные действия.
Если обработчик возвратил значение
true
,
браузер выполнит действия, предусмотренные в данной ситуации по умолчанию.
Если же возвращено
false
,
то реакция браузера будет иной.
Пример. Допустим, HTML-форма имеет вот такой обработчик:
<FORM action="..." onSubmit="return checkForm()">Данные, введенные пользователем в форму, будут отправлены на сервер лишь в том случае, если значение
checkForm()
есть
true
.
Обработчик | true (по умолчанию) |
false |
---|---|---|
onSubmit (для HTML-формы) |
После выполнения обработчика форма будет отправлена на сервер. | После выполнения обработчика форма не будет отправлена на сервер. |
onClick (для гиперссылки) |
После выполнения обработчика произойдет переход по гиперссылке. | После выполнения обработчика переход по гиперссылке не происходит. |
onMouseOver (для гиперссылки) |
После выполнения обработчика переход по гиперссылке не происходит. | После выполнения обработчика произойдет переход по гиперссылке. |
onMouseOut (для гиперссылки) |
После выполнения обработчика переход по гиперссылке не происходит. | После выполнения обработчика произойдет переход по гиперссылке. |
Copyright © 1999, Alexei Kourbatov