2.4 Обработка событий в JavaScript.
Приложения JavaScript в Navigator'е в значительной степени управляются
событиями. Например, нажатие кнопки мыши, изменение области текста, перемещение
мыши по ссылке и т.п.- события. Можно определить события, на которые будет
реагировать ваша программа. Список событий, обрабатываемых в JavaScript
приведен в следующей таблице.
Событие |
Применяется к |
Появляется когда |
Обработчик события |
abort |
images |
Пользователь прерывает загрузку изображения |
onAbort |
blur |
windows, frames и все формы элементов |
Пользователь убирает фокус ввода |
onBlur |
click |
button, radio button, checkboxes, submit button, reset button, links
|
Пользователь выбирает форму или ссылку |
onClick |
change |
текстовые поля, текстовые области |
Пользователь меняет значение элемента |
onChange |
error |
images, windows |
Ошибка загрузки документа или изображения |
onError |
focus |
windows, frames, и все формы элементов |
Пользователь передает фокус ввода |
onFocus |
load |
тело документа |
Пользователь загружает страницу в браузер |
onLoad |
mouseout |
areas, links |
Пользователь перемещает указатель мыши по области |
onMouseout |
mouseover |
links |
Пользователь очищает форму (нажимает клавищу Reset) |
onMouseover |
reset |
forms |
Пользователь выбирает область ввода элемента формы |
onReset |
select |
текстовые поля, текстовые области |
Пользователь указывает форму |
onSelect |
submit |
submit button |
Пользователь выбирает поле ввода элемента формы |
onSubmit |
unload |
тело документа |
Пользователь закрывает страницу |
onUnload |
Название программы-обработчика события обычно состоит из названия самого
события, которому предшествует "on"
Например, программа-обработчик получения фокуса ввода называется onFocus.
Чтобы создать программу-обработчик события для HTML тега, нужно добавить
обработчик события к тегу, указав в двойных кавычках программу-обработчик.
Аргументы программы обработчика, если таковые имеются, задаются в круглых
скобках. Типовой синтаксис имеет вид:
<ТЕГ обработчик события="Имя программы-обработчика (аргументы)
">
Предположим, что вы создали функцию JavaScript, названную myobr. Можно
заставить Navigator исполнять эту функцию, когда пользователь нажмет на
кнопку. Нажатие кнопки сопровождается событием Click, обработчиком этого
события является onClick, которой соответствует программа compute
<INPUT TYPE="button" VALUE="Calculate" onClick="myobr(this.form)">
Если хотите включить более чем один оператор для обработки события,
то их следует разделять точкой с запятой (;). В предыдущем примере this.form
относится к текущей форме. Ключевое слово this относится к кнопке. OnClick-обработчик
обращаетcя к compute, с текущей формой как аргументом.
Выделение функций для обработки событий является хорошим стилем, поскольку
делает построение программы модульным, позволяет использовать одну и ту
же функцию с различными аргументами, и делает программы более читабельными.
В следующем примере, можно ввести выражение (например, 2+3 ) в первой
области текстового ввода, и после нажатия кнопки во второй текстовой области
получить результат (например, 5).
<HEAD> <SCRIPT> <!--- Скрываем от старых браузеров
function compute(f) {
if (confirm("Are you sure?")) f.result.value=eval(f.expr.value)
else alert("Please come back again.") }
// конец сокрытия -->
</SCRIPT>
</HEAD>
<BODY>
<FORM> Введите выражение:
<INPUT TYPE="text" NAME="expr"SIZE=15 >
<INPUT TYPE="button" VALUE="Calculate"
onClick="compute(this.form)">
<BR> Результат:
<INPUT TYPE="text" NAME="result" SIZE=15 >
</FORM>
</BODY>
Navigator покажет следующее:
HEAD документа определяет единственную функцию, compute, с одним аргументом
f. Функция использует диалоговый бокс для подтверждения ввода с кнопками
OK и Cancel. Если пользователь нажимает OK, подтверждая правильность ввода,
вызывается встроенная функция eval(f.expr.value). Если пользователь нажимает
Cancel, происходит выход из функции. Обратите внимание на использование
значения полей NAME в функции, эти имена входят составной частью в имена
переменных в функции.
2.4.1 Явный запрос программ-обработчиков событий.
В JavaScript для Navigator 3.0, можно повторно переопределить программу-обработчик
события, как это показано ниже:
<SCRIPT LANGUAGE="JavaScript">
function fun1() { ... }
function fun2() { ... }
</SCRIPT>
<FORM NAME="myForm">
<INPUT TYPE="button" NAME="myButton"
onClick="fun1()"> </FORM> <SCRIPT> document.myForm.myButton.onclick=fun2
</SCRIPT>
Обратите внимание, что новая программа-обработчик записывается как fun2,
не fun2()
[ Оглавление ] [ Дальше ]
|