Zdarzenia HTML5
Jakie są rodzaje zdarzeń HTML5 i do czego służą?
Zdarzenie HTML to określona sytuacja lub akcja, która zachodzi w interfejsie użytkownika i może wywołać reakcję przeglądarki lub skryptu (JavaScript). Przykładami zdarzeń są kliknięcie myszą, załadowanie strony, zmiana wartości w formularzu czy rozpoczęcie odtwarzania pliku multimedialnego. Zdarzenia pozwalają tworzyć dynamiczne i interaktywne strony internetowe, reagujące na działania użytkownika.
Zdarzenia w HTML można przypisywać bezpośrednio do elementów jako atrybuty, dodając przedrostek on
przed nazwą zdarzenia. Na przykład, aby wykonać akcję po kliknięciu przycisku, można użyć atrybutu onclick="..."
:
<button onclick="alert('Kliknięto przycisk!')">Kliknij mnie</button>
Każdy element oraz inne obiekty występujące w języku HTML mają ściśle określoną listę zdarzeń, które obsługują. Poniżej przedstawiono trzy główne grupy zdarzeń dostępnych w HTML5:
- Podstawowe zdarzenia - związane z ogólną interakcją użytkownika z elementami strony, np. klikaniem lub zmianą wartości.
- Zdarzenia multimedialne - wywoływane podczas odtwarzania audio i wideo, np. gdy rozpoczyna się lub kończy odtwarzanie.
- Zdarzenia drag-and-drop - umożliwiają implementację przeciągania i upuszczania elementów w obrębie strony.
Zdarzenia te stanowią podstawę dla budowy bardziej dynamicznych i responsywnych interfejsów użytkownika. Poniższa tabela zawiera zestawienie nazw zdarzeń, elementów i obiektów do których mają one zastosowanie oraz opisu momentu ich uruchomienia.
Zdarzenie | Zastosowanie | Opis |
---|---|---|
DOMContentLoaded | Document | Uruchamia się, gdy parser zakończy przetwarzanie dokumentu Document . |
afterprint | Window | Uruchamia się w Window po zakończeniu drukowania. |
beforeprint | Window | Uruchamia się w Window przed rozpoczęciem drukowania. |
beforematch | Elementy | Uruchamia się na elementach z atrybutem hidden=until-found przed ich ujawnieniem. |
beforetoggle | Elementy | Uruchamia się na elementach z atrybutem popover , gdy przechodzą z widocznego na ukryty stan lub odwrotnie. |
beforeunload | Window | Uruchamia się w Window , gdy strona ma zostać zamknięta, umożliwiając wyświetlenie ostrzeżenia. |
blur | Elementy, Window | Uruchamia się na węzłach, gdy przestają być one fokusowane. |
cancel | Elementy CloseWatcher , dialog , input | Uruchamia się na obiektach CloseWatcher lub elementach dialog , gdy otrzymują żądanie zamknięcia, lub na elementach input, gdy nie dokonano zmiany wyboru pliku. |
change | Elementy formularza | Uruchamia się, gdy użytkownik zmienia wartość formularza (patrz również zdarzenie input). |
click | Elementy | Normalnie jest to zdarzenie myszy; wywoływane również sztucznie na elemencie przed uruchomieniem jego aktywacji, gdy element jest aktywowany za pomocą urządzenia wejściowego, które nie jest wskaźnikiem (np. klawiatura). |
close | Elementy CloseWatcher , dialog , MessagePort | Uruchamia się na obiektach CloseWatcher lub elementach dialog , gdy są one zamykane za pomocą żądania lub kodu, lub na obiektach MessagePort po rozłączeniu. |
command | Elementy | Uruchamia się na elementach, gdy obsługują one wywołanie przez użytkownika za pomocą atrybutu commandfor . |
connect | SharedWorkerGlobalScope | Uruchamia się, gdy nowy klient łączy się z globalnym zakresem współdzielonego pracownika. |
contextlost | Elementy canvas , obiekty OffscreenCanvas | Uruchamia się, gdy kontekst renderowania CanvasRenderingContext2D lub OffscreenCanvasRenderingContext2D zostaje utracony. |
contextrestored | Elementy canvas , obiekty OffscreenCanvas | Uruchamia się, gdy kontekst renderowania CanvasRenderingContext2D lub OffscreenCanvasRenderingContext2D zostaje przywrócony po utracie. |
currententrychange | Navigation | Uruchamia się, gdy zmienia się navigation.currentEntry . |
dispose | NavigationHistoryEntry | Uruchamia się, gdy wpis historii sesji związany z NavigationHistoryEntry zostaje trwale usunięty z historii sesji i nie można do niego już przejść. |
error | Obiekty globalne, elementy Worker , obiekty związane z siecią | Uruchamia się, gdy wystąpią niespodziewane błędy (np. błędy sieciowe, błędy skryptów, błędy dekodowania). |
focus | Elementy, Window | Uruchamia się na węzłach, które zyskują fokus. |
formdata | Elementy form | Uruchamia się na elemencie form, gdy jest tworzona lista wpisów formularza. |
hashchange | Window | Uruchamia się w Window , gdy fragment URL dokumentu się zmienia. |
input | Elementy | Uruchamia się, gdy użytkownik zmienia zawartość elementu contenteditable lub wartość kontrolki formularza. Patrz również zdarzenie change dla kontrolek formularza. |
invalid | Elementy formularza | Uruchamia się na kontrolkach formularza podczas walidacji, gdy nie spełniają one swoich ograniczeń. |
languagechange | Obiekty globalne | Uruchamia się na obiektach globalnych, gdy zmieniają się preferencje językowe użytkownika. |
load | Window , elementy | Uruchamia się w Window , gdy dokument zakończył ładowanie; wydarzają się także na elementach zawierających zasób (np. img, embed), gdy zasób został załadowany. |
message | Window , EventSource , MessagePort , BroadcastChannel , DedicatedWorkerGlobalScope , Worker , ServiceWorkerContainer | Uruchamia się na obiekcie, gdy otrzymuje on wiadomość. |
Zdarzenia multimedialne | ||
loadstart | audio i video | Agent użytkownika rozpoczyna wyszukiwanie danych multimedialnych jako część algorytmu wyboru zasobów. |
progress | audio i video | Agent użytkownika pobiera dane multimedialne. |
suspend | audio i video | Agent użytkownika celowo nie pobiera obecnie danych multimedialnych. |
abort | audio i video | Agent użytkownika przestaje pobierać dane multimedialne przed ich całkowitym załadowaniem, ale nie z powodu błędu. |
error | audio i video | Występuje błąd podczas pobierania danych multimedialnych lub typ zasobu nie jest obsługiwanym formatem multimedialnym. |
emptied | audio i video | Element multimedialny przechodzi do stanu NETWORK_EMPTY z innego stanu. |
stalled | audio i video | Agent użytkownika próbuje pobierać dane multimedialne, ale dane nie są dostępne tak jak oczekiwano. |
loadedmetadata | audio i video | Agent użytkownika właśnie określił czas trwania i wymiary zasobu multimedialnego, a ścieżki tekstowe są gotowe. |
loadeddata | audio i video | Agent użytkownika po raz pierwszy może odtworzyć dane multimedialne w bieżącym położeniu odtwarzania. |
canplay | audio i video | Agent użytkownika może wznowić odtwarzanie, ale szacuje, że nie dotrwa do końca bez buforowania. |
canplaythrough | audio i video | Agent użytkownika szacuje, że odtworzy zasób do końca bez konieczności dalszego buforowania. |
playing | audio i video | Odtwarzanie jest gotowe do rozpoczęcia po wstrzymaniu lub opóźnieniu spowodowanym brakiem danych. |
waiting | audio i video | Odtwarzanie zostało zatrzymane, ponieważ kolejna klatka nie jest dostępna, ale agent użytkownika oczekuje jej pojawienia się. |
seeking | audio i video | Rozpoczęto przewijanie do nowej pozycji - atrybut seeking zmienia się na true . |
seeked | audio i video | Przewijanie zakończone - atrybut seeking zmienia się na false . |
ended | audio i video | Odtwarzanie zakończyło się, bo osiągnięto koniec zasobu. |
durationchange | audio i video | Atrybut duration został właśnie zaktualizowany. |
timeupdate | audio i video | Pozycja odtwarzania zmieniła się jako część normalnego odtwarzania lub w sposób szczególny. |
play | audio i video | Element nie jest już wstrzymany - odtwarzanie rozpoczęło się. |
pause | audio i video | Element został wstrzymany. |
ratechange | audio i video | Atrybut defaultPlaybackRate lub playbackRate został zaktualizowany. |
resize | audio i video | Zaktualizowano jeden z atrybutów videoWidth lub videoHeight . |
volumechange | audio i video | Zmieniono atrybut volume lub muted . |
error | source | Wystąpił błąd podczas pobierania danych multimedialnych lub format nie jest obsługiwany. |
error | AudioTrackList , VideoTrackList , TextTrackList | Wystąpił błąd podczas pobierania danych multimedialnych lub format nie jest obsługiwany. |
cuechange | TextTrack , track | Jedna lub więcej etykiet (cue) w ścieżce stała się aktywna lub przestała być aktywna. |
error | track | Wystąpił błąd podczas pobierania danych ścieżki lub format ścieżki tekstowej nie jest obsługiwany. |
load | track | Dane ścieżki zostały pobrane i poprawnie przetworzone. |
enter | TextTrackCue | Etykieta (cue) stała się aktywna. |
exit | TextTrackCue | Etykieta (cue) przestała być aktywna. |
Zdarzenia drag-and-drop | ||
dragstart | Element źródłowy | Użytkownik rozpoczyna przeciąganie elementu. |
drag | Element źródłowy | Element jest przeciągany. |
dragenter | Bezpośrednio wskazany element lub element body | Przeciągany element wchodzi w obszar docelowy. |
dragleave | Poprzedni element docelowy | Przeciągany element opuszcza obszar docelowy. |
dragover | Bieżący element docelowy | Przeciągany element znajduje się nad obszarem docelowym (zdarzenie wyzwalane wielokrotnie). |
drop | Bieżący element docelowy | Przeciągany element zostaje upuszczony na docelowy obszar. |
dragend | Element źródłowy | Kończy się operacja przeciągania (niezależnie od tego, czy zakończyła się upuszczeniem). |
Żródło: HTML Standard