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

17.1.2. Обработчики событий как атрибуты

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

ной модели обработки событий) задаются в виде строк JavaScriptкода, присваи

ваемых в качестве значений HTMLатрибутам. Например, чтобы выполнить

JavaScriptкод при щелчке на кнопке, укажите этот код в качестве значения ат

рибута onclick тега <input> (или <button>):

<input type="button" value="Нажми меня" onclick="alert('спасибо');">

Значение атрибута обработчика события – это произвольная строка JavaScript

кода. Если обработчик состоит из нескольких JavaScriptинструкций, они долж'

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

<input type="button" value="Щелкни здесь"

onclick="if (window.numclicks) numclicks++; else numclicks=1;

this.value='Щелчок # ' + numclicks;">

Если обработчик события требует нескольких инструкций, то, как правило, про

ще определить его в теле функции и затем задать HTMLатрибут обработчика со

бытия для вызова этой функции. Например, проверить введенные пользовате

лем в форму данные перед их отправкой можно при помощи атрибута onsubmit

тега <form>.1 Проверка формы обычно требует как минимум нескольких строк

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

разумнее определить функцию проверки формы и просто задать атрибут onsubmit

для вызова этой функции. Например, если для проверки определить функцию

с именем validateForm(), то можно вызывать ее из обработчика события следую

щим образом:

<form action="processform.cgi" onsubmit="return validateForm();">

1 Подробное описание htmLформ, включая пример проверки правильности за

полнения полей формы, приводится в главе 18.408 Глава 17. События и обработка событий

Помните, что язык HTML нечувствителен к регистру, поэтому в атрибутах обра

ботчиков событий допускаются буквы любого регистра. Одно из распространен

ных соглашений состоит в употреблении символов различных регистров, при

этом префикс «on» записывается в нижнем регистре: onClick, onLoad, onMouseOut

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

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

JavaScriptкод в атрибуте обработчика события может содержать инструкцию

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

Вскоре мы это обсудим. Кроме того, следует отметить, что JavaScriptкод обра

ботчика события работает в области видимости (см. главу 4), отличной от гло

бальной. Это также более подробно обсуждается далее в этом разделе.

17.2.6.3. Интерфейс MouseEvent

Интерфейс MouseEvent наследует свойства и методы интерфейсов Event и UIEvent,

а также определяет следующие дополнительные свойства:

button

Число, указывающее, какая кнопка мыши изменила свое состояние во время

события mousedown, mouseup или click. Значение 0 обозначает левую кнопку, 1 –

среднюю кнопку, а 2 – правую кнопку. Это свойство применяется, только ко

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

информации о том, удерживается ли нажатой кнопка во время события mouse

move. Примечательно, что Netscape 6 ведет себя неправильно, используя вме

сто значений 0, 1 и 2 значения 1, 2 и 3. В Netscape 6.1 эта ошибка исправлена.424 Глава 17. События и обработка событий

altKey, ctrlKey, metaKey, shiftKey

Эти четыре логических значения указывают, нажимались ли клавиши Alt,

Ctrl, Meta и Shift, когда происходило событие мыши. В отличие от свойства but

ton, эти свойства клавиатуры действительны для любого типа события мыши.

clientX, clientY

Эти два свойства указывают координаты X и Y указателя мыши относитель

но клиентской области или окна броузера. Обратите внимание, что данные

координаты не учитывают прокрутку документа: если событие происходит

в верхнем крае окна, значение свойства clientY равно 0 независимо от того,

насколько далеко был прокручен документ. К сожалению, DOM Level 2 не

предоставляет стандартного способа трансляции оконных координат в коор

динаты документа. В броузерах, не относящихся к линейке Internet Explo

rer, можно сложить значения window.pageXOffset и window.pageYOffset (подроб

ности см. в разделе 14.3.1).

screenX, screenY

Эти два свойства задают координаты X и Y указателя мыши относительно

верхнего левого края дисплея. Эти значения полезны, если вы планируете от

крыть новое окно в месте возникновения события мыши или рядом с ним.

relatedTarget

Это свойство ссылается на узел, который связан с целевым узлом события.

Для события mouseover это узел, который указатель мыши оставил, перейдя

к целевому узлу. Для событий mouseout это узел, в который переместился ука

затель мыши, оставив целевой узел. Для других типов событий это свойство

не используется

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