Книга: JavaScript. Подробное руководство, 6-е издание
17.1.2. События модели DOM
17.1.2. События модели DOM
Спецификация «DOM Level 3 Events» разрабатывалась консорциумом W3C около десяти лет. К моменту написания этих строк она была подвергнута существенному пересмотру с целью привести в соответствие с текущими реалиями и наконец достигла стадии стандартизации «последней версии рабочего проекта». Она стандартизует многие из старых событий, описанных выше, и добавляет несколько новых событий, описываемых здесь. Эти новые типы событий пока не получили широкой поддержки, но производители броузеров предполагают реализовать их к моменту окончательного утверждения стандарта.
Как отмечалось выше, спецификация «DOM Level 3 Events» стандартизует события «focusin» и «focusout» как всплывающие альтернативы событий «focus» и «blur», а также события «mouseenter» и «mouseleave» - как невсплывающие альтернативы событий «mouseover» и «mouseout». Кроме того, эта версия стандарта не рекомендует использовать некоторые типы событий, которые были определены спецификацией «DOM Level 2 Events», но никогда не были реализованы. Броузеры по-прежнему обеспечивают поддержку событий, таких как «DOMActivate», «DOMFocusIn» и «DOMNodelnserted», но теперь это необязательно, и потому данные события не описываются в этой книге.[44]
Из новшеств, появившихся в спецификации «DOM Level 3 Events», можно назвать стандартизацию поддержки двунаправленных колесиков мыши через событие «wheel» и улучшенную поддержку событий ввода текста через событие «textinput» и новый объект KeyboardEvent
, который передается обработчикам событий «keydown», «кеуир» и «keypress».
Согласно этой спецификации обработчику события «wheel» должен передаваться объект события, содержащий все свойства, обычные для объектов событий от мыши, а также свойства deltaX, deltaY
и deltaZ
, позволяющие узнать величину прокрутки вокруг трех разных осей колесика мыши. (В большинстве мышей колесико вращается в одном или двух измерениях, и поэтому свойство deltaZ
пока остается неиспользуемым.) Подробнее о событиях «mousewheel» рассказывается в разделе 17.6.
Стандарт «DOM Level 3 Events» определяет событие «keypress», описанное выше, но не рекомендует использовать его и отдает предпочтение новому событию с именем «textinput». Вместо сложного в использовании числового значения в свойстве keyCode
, объект события, передаваемый обработчикам события «textinput», имеет свойство data
, содержащее введенную строку текста. Событие «textinput» не является в полной мере событием от клавиатуры: оно возбуждается при выполнении любой операции ввода текста, которая может быть выполнена с помощью клавиатуры, копированием из буфера обмена, операцией буксировки (drag-and-drop) и т. д. Спецификация определяет свойство inputMethod
объекта события и множество констант, представляющих различные способы ввода текста (с клавиатуры, копированием из буфера обмена или буксировкой мышью, путем распознавания рукописного текста или голоса и т. д.). К моменту написания этих строк броузеры Safari и Chrome поддерживали версию этого события с именем «textlnput». Соответствующий ему объект события включает свойство data
, но в нем отсутствует свойство inputMethod
. Пример использования события «textlnput» приводится в разделе 17.8.
Новый стандарт DOM также упрощает события «keydown», «кеуир» и «keypress», добавляя новые свойства key
и char
в объект события. Оба эти свойства содержат строковые значения. Для клавиш, генерирующих печатаемые символы, свойства key
и char
будут хранить один и тот же сгенерированный текст. Для управляющих клавиш свойство key
будет хранить строку вида «Enter», «Delete» или «Left», идентифицирующую клавишу. А свойство char
будет хранить либо значение null, либо, для таких управляющих клавиш, как Tab
, - имеющих соответствующий управляющий символ, - строку, сгенерированную клавишей. На момент написания этих строк ни один броузер не поддерживал эти свойства key
и char
, но пример 17.8 будет использовать свойство key
, когда оно будет реализовано.
- Глава 7 Чего нужно опасаться при моделировании бизнес-процессов. Проектные риски моделирования бизнеспроцессов
- Rational Rose 2000 и UML Визуальное моделирование
- 4.2. Создание трехмерной модели и построение горизонтальной проекции детали
- Построение модели выходов (результатов)
- Простейшие события
- 6.2. Модели оценки бизнес-тренинга
- Общие принципы моделирования
- 1.2.1. Принципы построения модели IDEF0
- Создание рабочей области для собраний на основе календарного события
- 12.4. Моделирование правильных треугольных пирамид
- 2.3. Создание физической модели данных
- 2.3.1. Уровни физической модели