Zdarzenia#
Przegląd typów zdarzeń#
W zależności od poziomu wsparcia DOM, a także urządzeń wykorzystywanych do wyświetlania (np. ekranu) czy interakcji (np. myszy, klawiatury, ekranu dotykowego lub urządzenia głosowego), tylko pewna część typów zdarzeń może być generowana przez implementację. Gdy są używane w aplikacjach XML 1.0 lub HTML5, to specyfikacje definiujące te języki mogą dodatkowo ograniczać semantykę i zasięg (w szczególności dopuszczalne cele zdarzeń) powiązane z typem zdarzenia. Należy samodzielnie ustalić takie ograniczenia lub odnaleźć typy zdarzeń, które nie zostały zdefiniowane w specyfikacji zdarzeń.
Specyfikacja D3E zawiera następującą tabelę z najważniejszymi informacjami dla poszczególnych typów zdarzeń:
Typ zdarzenia | Sync / Async | Bąbel- kowa- nie | Zaufane cele | Interfejs DOM | Anulo- wanie | Domyślna akcja |
---|---|---|---|---|---|---|
abort | Sync | Nie | defaultView , Element | Event | Nie | Brak |
beforeinput | Sync | Tak | Element | InputEvent | Tak | Aktualizacja elementu DOM |
blur | Sync | Nie | defaultView , Element | FocusEvent | Nie | Brak |
click | Sync | Tak | Element | MouseEvent | Tak | Zmienna: dla celów ze skojarzonym aktywującym zachowaniem wykonanie tego aktywującego zachowania; dla celów ogniskujących przekazanie zogniskowania do elementu |
compositionend | Sync | Tak | Element | CompositionEvent | Nie | Brak |
compositionstart | Sync | Tak | Element | CompositionEvent | Tak | Rozpoczęcie sesji kompozycji, kiedy system kompozycji tekstu jest włączony |
compositionupdate | Sync | Tak | Element | CompositionEvent | Nie | Brak |
dblclick | Sync | Tak | Element | MouseEvent | Nie | Zmienna: dla celów ze skojarzonym aktywującym zachowaniem wykonanie tego aktywującego zachowania; dla celów ogniskujących przekazanie zogniskowania do elementu; dla zaznaczalnych celów zaznaczenie części lub całości treści |
error | Async | Nie | defaultView , Element | Event | Nie | Brak |
focus | Sync | Nie | defaultView , Element | FocusEvent | Nie | Brak |
focusin | Sync | Tak | defaultView , Element | FocusEvent | Nie | Brak |
focusout | Sync | Tak | defaultView , Element | FocusEvent | Nie | Brak |
input | Sync | Tak | Element | Nie | Brak | |
keydown | Sync | Tak | Element | KeyboardEvent | Tak | Zmienna: zdarzenia beforeinput i input ; uruchomienie systemu kompozycji tekstu; zdarzenia blur i focus ; zdarzenie keypress ; aktywujące zachowanie; inne zdarzenia |
keyup | Sync | Tak | Element | KeyboardEvent | Tak | Brak |
load | Async | Nie | defaultView , Document , Element | Event | Nie | Brak |
mousedown | Sync | Tak | Element | MouseEvent | Tak | Zmienna: rozpoczęcie operacji przeciągania/upuszczania, rozpoczęcie zaznaczenia tekstu, rozpoczęcie interakcji przewijania/przesuwania (w połączeniu ze środkowym przyciskiem myszy, jeśli obsługiwany) |
mouseenter | Sync | Nie | Element | MouseEvent | Nie | Brak |
mouseleave | Sync | Nie | Element | MouseEvent | Nie | Brak |
mousemove | Sync | Tak | Element | MouseEvent | Tak | Brak |
mouseout | Sync | Tak | Element | MouseEvent | Tak | Brak |
mouseover | Sync | Tak | Element | MouseEvent | Tak | Brak |
mouseup | Sync | Tak | Element | MouseEvent | Tak | Wywołanie menu kontekstowego (w połączeniu z prawym przyciskiem myszy, jeśli obsługiwany) |
resize | Sync | Nie | defaultView , Element | UIEvent | Nie | Brak |
scroll | Async | Nie / Tak | Document , Element | UIEvent | Nie | Brak |
select | Sync | Tak | Element | Event | Nie | Brak |
unload | Sync | Nie | defaultView , Document , Element | Event | Nie | Brak |
wheel | Async | Tak | Element | WheelEvent | Tak | Przewijanie lub powiększanie dokumentu |
Istnieje także wykaz z przestarzałymi typami zdarzeń, których implementacja i używanie jest odradzane.
Oto jeden ze sposobów interpretacji powyższej tabeli: zdarzenie load
wyzwoli nasłuchy zdarzeń zarejestrowane na węzłach typu Element
dla tego zdarzenia i dla faz przechwytywania oraz celu. Zdarzenia nie można anulować (czyli odwołać domyślnych akcji). Jeśli nasłuch zdarzenia dla zdarzenia load
zostanie zarejestrowany na węźle innego typu niż defaultView
, Document
czy Element
, lub zostanie zarejestrowany tylko dla fazy bąbelkowanie, to nasłuch zdarzenia nie zostanie wyzwolony.
Nie należy interpretować powyższej tabeli jako ostatecznego wyznacznika dla wymienionych typów zdarzeń. Dla przykładu, zdarzenie load
jest wykorzystywane w innych specyfikacjach, ze szczególnym wskazaniem na Ajaksa (obiekt typu XMLHttpRequest
). Podobnie metoda EventTarget.dispatchEvent()
może być używana do wysyłania niezaufanych zdarzeń do nasłuchów zdarzeń na dowolnym obiekcie, który implementuje interfejs EventTarget.