[Содержание] [Предыдущая] [Следующая] [Индекс]

Глава 9
События и Обработчики Событий

Эта глава содержит объект event и обработчики событий, которые используются с объектами client-side в JavaScript, чтобы вызвать специфические действия. Кроме того, она содержит общую информацию об использовании событий и обработчиков событий.

Таблица 9.1 содержит один объект в этой главе.

Таблица 9.1 Связанный с событием объект
Объект Описание
event
Представляет событие JavaScript. Передается каждому обработчику события.

Таблица 9.2 подводит итог обработчиков событий JavaScript.

Таблица 9.2 События и соответствующие им обработчики событий.
Событие Обработчик события Событие происходит когда...
abort
onAbort
Пользователь прерывает загрузку изображения (например, щелкая ссылку или щелкая кнопку Стоп).
blur
onBlur
Элемент формы теряет фокус или когда окно или кадр теряет фокус.
change
onChange
select, text или textarea теряют фокус, и их значение изменилось.
click
onClick
Объект в форме нажат.
dblclick
onDblClick
Пользователь дважды щелкает элемент формы или ссылку.
dragdrop
onDragDrop
Пользователь бросает объект на окно браузера, типа брасание файла в окне браузера.
error
onError
Загрузка документа или изображения вызывает ошибку.
focus
onFocus
window, frame или frameset получают фокус или когда элемент формы получает фокус ввода.
keydown
onKeyDown
Пользователь нажимает клавишу.
keypress
onKeyPress
Пользователь нажимает или держит нажатой клавишу.
keyup
onKeyUp
Пользователь отпускает клавишу.
load
onLoad
Браузер заканчивает загружать окно или все кадры внутри тэга FRAMESET .
mousedown
onMouseDown
Пользователь нажимает кнопку мыши.
mousemove
onMouseMove
Пользователь перемещает курсор.
mouseout
onMouseOut
Курсор оставляет область (графическую карту client-side) или ссылку.
mouseover
onMouseOver
Курсор перемещается поверх объекта или области.
mouseup
onMouseUp
Пользователь отпускает кнопку мыши.
move
onMove
Пользователь или сценарий перемещает окно или кадр.
reset
onReset
Пользователь сбрасывает форму (нажимая кнопку Reset).
resize
onResize
Пользователь или сценарий изменяет размеры окна или кадра.
select
onSelect
Пользователь выбирает часть текста внутри text или textarea.
submit
onSubmit
Пользователь представляет на рассмотрение форму.
unload
onUnload
Пользователь выходит из документа.

Общая Информация о Событиях

Приложения JavaScript в браузере в значительной степени управляются событиями. События это действия, которые происходят обычно в результате того, что пользователь делает. Например, щелчек по кнопке это событие, как и изменение текстового поля или перемещение мыши поверх ссылки. Чтобы Ваш сценарий реагировал на событие, Вы определяете обработчики событий, типа onChange и onClick.

Определение Обработчиков Событий

Если событие применяется к тэгу HTML, то Вы можете определить обработчик события для него. Имя обработчика события это имя события, предваренное "on". Например, обработчик события для события focus это onFocus.

Чтобы создавать обработчик события для тэга HTML, добавьте атрибут обработчика события к тэгу. Поместите код JavaScript в кавычки как значение атрибута. Общий синтаксис

<TAG eventHandler="Код JavaScript">
где TAG это HTML тэг и eventHandler это имя обработчика события. Например, предположим, что Вы создали функцию JavaScript с именем compute. Вы можете заставить браузер выполнить эту функцию, когда пользователь нажимает кнопку, назначая вызов функции обработчику события onClick кнопки:

<INPUT TYPE="button" VALUE="Вычислить" onClick="compute(this.form)">
Вы можете поместить любые инструкции JavaScript внутри кавычек после onClick. Эти инструкции выполняются, когда пользователь нажимает кнопку. Если Вы хотите включить больше чем одну инструкцию, разделите инструкции точкой с запятой.

Когда Вы создаете обработчик события, соответствующий объект JavaScript получает свойство с именем обработчика события из строчных букв. (В Navigator 4.0, Вы можете также использовать смешанный регист имени обработчика события для имени свойства.) Это свойство позволяет Вам обращаться к обработчику события объекта. Например, в предшествующем примере, JavaScript создает объект Button со свойством onclick, чье значение является "compute(this.form)".

Глава 7, "Защита JavaScript," в Руководстве по JavaScript содержит подробную информацию о создании и использовани обработчиков событий.

События в Navigator 4.0

В Navigator 4.0, JavaScript включает объекты event также как обработчики событий. Каждое событие имеет объект event, связанный с ним. Объект event обеспечивает информацию о событиях, такую как тип события и положение курсора во время события. Когда событие происходит, и если обработчик события был записан в дескриптор события, объект event посылается как параметр обработчику события.

Обычно, объект, на котором событие происходит, обрабатывает событие. Например, когда пользователь нажимает кнопку, это часто обработчик события кнопки, которая обрабатывает событие. Иногда Вы хотите, чтобы объекты Window или document обрабатывали некоторые типы событий. Например, Вы хотите, чтобы объект document обрабатывал все события MouseDown независимо от того, где они происходят в документе. Модель фиксирования событий JavaScript позволяет Вам определить методы, которые фиксируют и обрабатывают события прежде, чем они достигают их предназначенного адресата.

В дополнение к обеспечению объекта event, Navigator 4.0 позволяет Window или document фиксировать и обрабатывать событие прежде, чем оно достигает предназначенного адресата. Чтобы выполнять это объекты Window, document и Layer имеют следующие новые методы:

Например, предположим, что Вы хотите фиксировать все события щелчка, которые происходят в окне. Сначала, Вы должны установить окно, чтобы фиксировать события щелчка:

window.captureEvents(Event.CLICK);
Параметр Window.captureEvents это свойство объекта event и указывает тип события, чтобы фиксировать. Чтобы фиксировать несколько событий, аргумент является списком событий, отделяемых вертикальной чертой (|). Например:

window.captureEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP)
Затем, Вы должны определить функцию, которая обработает событие. Параметр evnt это объект event для события.

function clickHandler(evnt) {
   //Что находится здесь зависит от того, как Вы хотите обрабатывать событие.
   //Это описано ниже.
}
Вы имеете четыре параметра для обработки события:

В заключение, Вы должны регистрировать функцию как обработчик события окна для этого события:

window.onClick = clickHandler;

Важно

Если окно с кадрами хочет фиксировать события в страницах, загруженных из различных мест, Вы должны использовать captureEvents в подписанном сценарии и вызвать Window.enableExternalCapture. В следующем примере, окно и документ фиксируют и отпускают события:

<HTML>
<SCRIPT>
function fun1(evnt) {
   alert ("Окно получило событие типа: " + evnt.type +
      " и будет вызвана routeEvent.");
   window.routeEvent(evnt);
   alert ("Окно возвратилось из routeEvent.");
   return true;
}
function fun2(evnt) {
   alert ("Документ получил событие типа: " + evnt.type);
   return false;
}
function setWindowCapture() {
   window.captureEvents(Event.CLICK);
}
function releaseWindowCapture() {
   window.releaseEvents(Event.CLICK);
}
function setDocCapture() {
   document.captureEvents(Event.CLICK);
}
function releaseDocCapture() {
   document.releaseEvents(Event.CLICK);
}
window.onclick=fun1;
document.onclick=fun2;
</SCRIPT>
...
</HTML>


[Содержание] [Предыдущая] [Следующая] [Индекс]

Последняя Модификация: 10/31/97 16:34:02


Права © 1997 Netscape Communications Corporation



Все мессаги сюда:yanich@inbox.ru
Hosted by uCoz