русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Модули и типы событий


Дата добавления: 2015-07-09; просмотров: 524; Нарушение авторских прав


 

Как уже говорилось, стандарт DOM Level 2 имеет модульную структуру, поэтому реализация может поддерживать одни его части и не поддерживать другие. Events – один из таких модулей. Проверить, поддерживает ли броузер этот мо_ дуль, можно следующим образом:

 



document.implementation.hasFeature("Events", "2.0")

 



Однако модуль Events содержит только API для базовой инфраструктуры обра_ ботки событий. Поддержка определенных типов событий делегируется субмоду_ лям. Каждый субмодуль предоставляет поддержку определенной категории свя_ занных типов событий и определяет тип Event, передаваемый обработчикам со_ бытий для каждого из этих типов. Например, субмодуль с именем MouseEvents предоставляет поддержку событий mousedown, mouseup, click и событий родствен_ ных типов. Он также определяет интерфейс MouseEvent. Объект, реализующий этот интерфейс, передается функции_обработчику любого типа события, поддер_ живаемого данным модулем.

 



В табл. 17.2 перечислены все модули событий, определяемые ими интерфейсы и типы событий, которые они поддерживают. Обратите внимание: DOM Level 2 не стандартизует ни один из типов событий клавиатуры, поэтому в данном спи_ ске нет модуля событий клавиатуры. Тем не менее современные броузеры под_


 

420 Глава 17. События и обработка событий

держивают события клавиатуры, о чем подробнее рассказывается в этой главе далее. В табл. 17.2 и оставшейся части этой книги отсутствует описание модуля MutationEvents. Событие Mutation возбуждается при изменении структуры доку_ мента. Оно может использоваться приложениями, такими как HTML_редакто_ ры, но обычно не реализуется броузерами и практически игнорируется веб_про_ граммистами.

 



Таблица 17.2. Модули, интерфейсы и типы событий

 



Имя модуля Интерфейс Event Типы событий
     
HTMLEvents Event abort, blur, change, error, focus, load, reset, resize,
    scroll, select, submit, unload
MouseEvents MouseEvent click, mousedown, mousemove, mouseout, mouseover, mou_
    seup
UIEvents UIEvent DOMActivate, DOMFocusIn, DOMFocusOut
MutationEvents MutationEvent DOMAttrModified, DOMCharacterDataModified, DOMNodeIn_
    serted, DOMNodeInsertedIntoDocument, DOMNodeRemoved,
    DOMNodeRemovedFromDocument, DOMSubtreeModified
     

 

Как видно из таблицы, модули HTMLEvents и MouseEvents определяют типы собы_ тий, схожие с модулем событий уровня 0. Модуль UIEvents определяет типы со_ бытий, напоминающие события focus, blur и click, поддерживаемые элементами HTML_форм, но обобщенные таким образом, чтобы генерироваться любым эле_ ментом документа, который может получать фокус или активизироваться как_то иначе.

 



Как уже говорилось, когда происходит событие, его обработчику передается объект, реализующий интерфейс Event, связанный с данным типом события. Свойства этого объекта предоставляют информацию о событии, которая может быть полезна обработчику. В табл. 17.3 снова перечислены стандартные собы_ тия, но на этот раз организованные по типам, а не по модулям событий. Для ка_ ждого типа событий в этой таблице указан вид объекта события, передаваемого его обработчику, а также говорится, всплывает ли событие этого типа в иерар_ хии документа в процессе распространения события (столбец «B») и есть ли для данного события действие по умолчанию, которое может быть отменено методом preventDefault() (столбец «C»). Для событий модуля HTMLEvents в последнем, пя_ том, столбце таблицы указано, какие HTML_элементы могут генерировать дан_ ное событие. Для всех остальных типов событий в пятом столбце указано, какие свойства объекта события содержат существенные подробности о событии (эти свойства описаны в следующем разделе). Обратите внимание: свойства, перечис_ ленные в этом столбце, не включают свойств, определяемых базовым интерфей_ сом Event и содержащих осмысленные значения для всех типов событий.

 



Полезно сравнить табл. 17.3 с табл. 17.1, в которой перечислены обработчики со_ бытий Level 0, определяемые в HTML 4. Типы событий, поддерживаемые двумя этими моделями, в значительной степени совпадают (исключая модуль UIEvents). Стандарт DOM Level 2 добавляет поддержку типов событий abort, error, resize и scroll, которые не были стандартизованы в HTML 4, и исключает поддержку типа события dblclick, являющегося частью стандарта HTML 4. (Вместо этого,


 

17.2. Развитые средства обработки событий в модели DOM Level 2
   

 

как мы скоро увидим, свойство detail объекта, передаваемого обработчику собы_ тия click, определяет количество последовательных щелчков мыши.)

 



Таблица 17.3. Типы событий          
  B   C   Поддержка/детализирующие свойства  
Тип события Интерфейс      
               
abort Event Да   Нет   <img>, <object>  
blur Event Нет   Нет   <a>, <area>, <button>, <input>, <label>, <select>,  
            <textarea>  
change Event Да   Нет   <input>, <select>, <textarea>  
click MouseEvent Да   Да   screenX, screenY, clientX, clientY, altKey, ctr_  
            lKey, shiftKey, metaKey, button, detail  
error Event Да   Нет   <body>, <frameset>, <img>, <object>  
focus Event Нет   Нет   <a>, <area>, <button>, <input>, <label>, <se_  
            lect>, <textarea>  
load Event Нет   Нет   <body>, <frameset>, <iframe>, <img>, <object>  
mousedown MouseEvent Да   Да   screenX, screenY, clientX, clientY, altKey, ctr_  
            lKey, shiftKey, metaKey, button, detail  
mousemove MouseEvent Да   Нет   screenX, screenY, clientX, clientY, altKey, ctr_  
            lKey, shiftKey, metaKey  
mouseout MouseEvent Да   Да   screenX, screenY, clientX, clientY, altKey, ctr_  
            lKey, shiftKey, metaKey, relatedTarget  
mouseover MouseEvent Да   Да   screenX, screenY, clientX, clientY, altKey, ctr_  
            lKey, shiftKey, metaKey, relatedTarget  
mouseup MouseEvent Да   Да   screenX, screenY, clientX, clientY, altKey, ctr_  
            lKey, shiftKey, metaKey, button, detail  
reset Event Да   Нет   <form>  
resize Event Да   Нет   <body>, <frameset>, <iframe>  
scroll Event Да   Нет   <body>  
select Event Да   Нет   <input>, <textarea>  
submit Event Да   Да   <form>  
unload Event Нет   Нет   <body>, <frameset>  
DOMActivate UIEvent Да   Да   detail  
DOMFocusIn UIEvent Да   Нет   Отсутствуют  
DOMFocusOut UIEvent Да   Нет   Отсутствуют  
               

 



<== предыдущая лекция | следующая лекция ==>
Регистрация объектов в качестве обработчиков событий | Интерфейсы и детализирующие свойства событий


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.067 сек.