Spis poleceń HTML#

Zdarzenia#

Podczas korzystania z przeglądarki internetowej (przeglądając witryny WWW) generowana jest cała masa różnych zdarzeń. Może być to np. kliknięcie przycisku na dowolnym elemencie (click), wczytanie strony (load), zresetowanie formularza (reset) i wiele więcej. Każde takie zdarzenie można przechwycić za pomocą tzw. uchwytu zdarzenia, a następnie w odpowiedni sposób obsłużyć (podając właściwy kod do wykonania).

W specyfikacji HTML 4.01 zdefiniowano kilkanaście uchwytów zdarzeń (dokładnie 18), które powinny być interpretowane w każdej przeglądarce. Uchwyty można przypisywać bezpośrednio do elementów, jako kolejne atrybuty (wartością są polecenia do wykonania). Przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<button onclick="alert('Witaj wędrowcze');">Kliknij mnie!</button>

Z praktycznego punktu widzenia bezpośrednie umieszczanie kodu JS w atrybutach xHTML jest niewskazane, zawsze należy dążyć do zachowania podziału na główne warstwy.

Na dzień dzisiejszy istnieje więcej zdarzeń niż te, które podaje specyfikacja. Ponadto wprowadzono lepsze mechanizmy do ich obsługi (np. metoda addEventListener). Temat silnie powiązany jest z JavaScriptem oraz modelem DOM, czyli dotyczy bardziej zaawansowanych programistów. Kurs xHTML nie jest miejscem na szczegółowe omówienie zagadnienia. W tym miejscu zajmiemy się jedynie podstawami.

W poniższej tabeli znajduje się wykaz wszystkich 18 uchwytów zdarzeń, które zawarto w specyfikacji HTML 4.01.

AtrybutZastosowanieOpis

Zdarzenia w okienkach

Zdarzenia w okienkach
onload<body>, <frameset>Dokument (lub wszystkie ramki) został wczytany
onunload<body>, <frameset>Dokument (lub wszystkie ramki) został zamknięty

Zdarzenia w formularzach

Zdarzenia w formularzach
onblur<a>, <area>, <button>, <input>, <label>, <select>, <textarea>Element utracił zogniskowanie
onchange<input>, <select>, <textarea>Wartość elementu została zmieniona
onfocus<a>, <area>, <button>, <input>, <label>, <select>, <textarea>Element otrzymał zogniskowanie
onreset<form>Formularz został wyczyszczony
onselect<input>, <textarea>Jakiś tekst został zaznaczony
onsubmit<form>Formularz został wysłany

Zdarzenia klawiatury

Zdarzenia klawiatury
onkeydownWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Klawisz został wciśnięty
onkeypressWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Klawisz został wciśnięty i zwolniony
onkeyupWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Klawisz został zwolniony

Zdarzenia myszki

Zdarzenia myszki
onclickWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Kliknięcie myszki
ondblclickWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Podwójne kliknięcie myszki
onmousedownWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Przycisk myszki został wciśnięty
onmousemoveWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Ruch myszki nad elementem
onmouseoutWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Wskaźnik myszki opuścił element
onmouseoverWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Wskaźnik myszki wskazał element
onmouseupWszystkie prócz <!DOCTYPE>, <!-- -->, <applet>, <base>, <basefont>, <bdo>, <br>, <font>, <frame>, <frameset>, <head>, <html>, <iframe>, <isindex>, <meta>, <param>, <script>, <style>, <title>Przycisk myszki został zwolniony

Przykłady#

W przykładach wyjaśniających dane zdarzenie stosuję atrybuty w elementach xHTML. Mają one jedynie przybliżyć zagadnienie, umożliwić bezpośrednią interakcję i wybadanie mechanizmu (w Testerze Kodu Online). W rzeczywistych projektach zawsze stosuj elegantsze rozwiązania.

onload#

Zdarzenie zostanie wywołane gdy strona (ze wszystkimi zasobami, np. grafiką) zostanie wczytana. To samo dotyczy dokumentu zbudowanego na ramkach. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<html>
	<head>
		<title>Zdarzenie onload</title>
	</head>
	<body onload="alert('Strona wczytana!');">
		<h1>Witaj wędrowcze!</h1>
	</body>
</html>

onunload#

Zdarzenie zostanie wywołane gdy strona zostanie zamknięta (ewentualnie wciśnięty zostanie klawisz F5). To samo dotyczy dokumentu zbudowanego na ramkach. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<html>
	<head>
		<title>Zdarzenie onunload</title>
	</head>
	<body onunload="alert('Opuściłeś właśnie najlepszą stronę WWW!');">
		<p>Zamknij okno lub wciśnij klawisz F5.</p>
	</body>
</html>

onblur#

Zdarzenie zostanie wywołane w chwili, kiedy element traci fokus (zogniskowanie). Jest ono przeciwieństwem onfocus. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<p>Wprowadź kursor i opuść pole 1: <input type="text" onblur="alert('Opuściłeś pole 1');"></p>
<p>Wprowadź kursor i opuść pole 2: <input type="text" onblur="alert('Opuściłeś pole 2');"></p>

onchange#

Zdarzenie zostanie wywołane w chwili, kiedy wartość elementu zostanie zmieniona. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<p>Wprowadź kursor i zmień wartość:
	<input type="text" onchange="alert('Wartość uległa zmianie');">
</p>

Po zmianie wartości należy opuścić kontrolkę (zmienić zogniskowanie) lub wcisnąć Enter.

onfocus#

Zdarzenie zostanie wywołane w chwili, kiedy element otrzymuje fokus (zogniskowanie). Może się to odbyć poprzez kliknięcie na elemencie myszką lub wybraniu go za pomocą przycisku TAB. Jest ono przeciwieństwem onblur. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<p>Wprowadź kursor: <input type="text" onfocus="alert('Pole uzyskało zogniskowanie');"></p>

onreset#

Zdarzenie zostanie wywołane w chwili, kiedy formularz zostanie zresetowany. Odbywa się to za pomocą wciśnięcia odpowiedniego przycisku resetującego. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<form onreset="alert('Formularz został zresetowany')">
	Imię: <input type="text" value="John">
	<br>
	Nazwisko: <input type="text" value="Rambo">
	<br>
	<input type="reset" value="Reset">
</form>

Po kliknięciu przycisku Reset wszystkie dodatkowe wartości wprowadzone do pól formularza zostaną przywrócone do domyślnych.

onselect#

Zdarzenie zostanie wywołane w chwili, kiedy w elemencie zostanie zaznaczony jakiś tekst (lub jego część). Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<p>Zaznacz tekst:
	<input type="text" onselect="alert('Tekst został zaznaczony!');" value="Przykładowa treść">
</p>

onsubmit#

Zdarzenie zostanie wywołane w chwili, kiedy formularz ma zostać wysłany. Często przydaje się do wstępnej walidacji danych po stronie użytkownika. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<form action="http://www.webref.pl" onsubmit="alert('Witaj ' + this.imie.value +'!')">
	Jak masz na imię?<br>
	<input type="text" name="imie">
	<input type="submit" value="Wyślij">
</form>

Po wpisaniu czegoś do pola tekstowego i kliknięciu przycisku Wyślij pojawi nam się alert z odpowiednią treścią (tą którą wprowadziliśmy). Po zatwierdzeniu komunikatu wczytana zostanie główna strona mojego autorstwa. Umiejętne weryfikowanie wprowadzanych danych za pomocą JS może zaoszczędzić moc przerobową serwera.

onkeydown#

Zdarzenie zostanie wywołane w chwili, kiedy przycisk klawiatury zostanie wciśnięty. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<p>Wprowadź wartość:
	<input type="text" onkeydown="alert('Klawisz został wciśnięty!');">
</p>

onkeypress#

Zdarzenie zostanie wywołane w chwili, kiedy przycisk klawiatury zostanie wciśnięty lub zwolniony. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<p>Wprowadź wartość:
	<input type="text" onkeypress="alert('Klawisz został wciśnięty lub zwolniony!');">
</p>

onkeyup#

Zdarzenie zostanie wywołane w chwili, kiedy przycisk klawiatury zostanie zwolniony. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<p>Wprowadź wartość:
	<input type="text" onkeyup="alert('Klawisz został zwolniony!');">
</p>

onclick#

Zdarzenie zostanie wywołane w chwili, kiedy element zostanie kliknięty (lewym przyciskiem myszki). Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<button onclick="alert('Przycisk został kliknięty!')">Kliknij mnie raz!</button>

ondblclick#

Zdarzenie zostanie wywołane w chwili, kiedy element zostanie kliknięty dwa razy (lewym przyciskiem myszki). Ważne jest by kliknięcia nastąpiły po sobie w krótkim odstępie czasu (tak jak ma to miejsce w systemie operacyjnym). Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<button ondblclick="alert('Przycisk został podwójnie kliknięty!')">Kliknij mnie dwa razy!</button>

onmousedown#

Zdarzenie zostanie wywołane w chwili, kiedy element zostanie kliknięty dowolnym przyciskiem myszki (lewym, prawym lub scrollem). Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<button onmousedown="alert('Przycisk został kliknięty!')">Kliknij mnie!</button>

onmousemove#

Zdarzenie zostanie wywołane w chwili, kiedy nastąpi poruszenie kursorem myszki nad elementem (w obrębie elementu). Wyłapywana jest zmiana położenia kursora z dokładnością do 1px. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<button onmousemove="alert('Poruszenie kursorem myszki!')">Wykonaj ruch w obrębie przycisku!</button>

onmouseout#

Zdarzenie zostanie wywołane w chwili, kiedy kursor myszki jest odsuwany znad elementu (opuszcza jego obręb). Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<button onmouseout="alert('Kursor opuścił obręb elementu!')">Odsuń kursor znad elementu!</button>

onmouseover#

Zdarzenie zostanie wywołane w chwili, kiedy kursor myszki wskazuje na element. Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<button onmouseover="alert('Element został wskazany!')">Najedź kursorem na element!</button>

onmouseup#

Zdarzenie zostanie wywołane w chwili, kiedy nastąpi puszczenie naciśniętego, dowolnego przycisku myszki nad elementem (w jego obrębie). Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<button onmouseup="alert('Przycisk został zwolniony!')">Zwolnij kliknięty przycisk!</button>
Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Spis poleceń HTML (H1) Zdarzenia (H2) Zdarzenia w okienkach (H3) Zdarzenia w formularzach (H3) Zdarzenia klawiatury (H3) Zdarzenia myszki (H3) Przykłady (H2) onload (H3) onunload (H3) onblur (H3) onchange (H3) onfocus (H3) onreset (H3) onselect (H3) onsubmit (H3) onkeydown (H3) onkeypress (H3) onkeyup (H3) onclick (H3) ondblclick (H3) onmousedown (H3) onmousemove (H3) onmouseout (H3) onmouseover (H3) onmouseup (H3)