Zdarzenia#

Typ focus#

Typ:focus
Interfejs:FocusEvent
Sync / Async:Sync
BąbelkowanieNie
Zaufane celedefaultView, Element
AnulowanieNie
Domyślna akcjaBrak
Kontekst
(zaufane zdarzenia)

Zdarzenie typu focus musi zostać wysłane przez aplikację kliencką w chwili, kiedy obiekt otrzymał zogniskowanie. Zogniskowanie musi zostać przekazane do obiektu przed wysłaniem tego typu zdarzenia. Zdarzenie focus jest bardzo podobne do zdarzenia focusin, aczkolwiek jest wysyłane po przeniesieniu zogniskowania i nie pozwala na bąbelkowanie.

W przypadku HTML5 zdarzenie typu focus jest automatycznie odpalane przez przeglądarki internetowe zgodnie z ogólnym opisem zdarzeń zogniskowania.

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<!DOCTYPE html>
<html>

<head>

	<style>

		input:focus {outline: 5px solid green;}

	</style>

</head>

<body>

	<p>Zmień zogniskowanie w kontrolkach przy użyciu tabulatora lub myszy.</p>
	<input id="input1" type="text" value="Pierwsza kontrolka">
	<input id="input2" type="text" value="Druga kontrolka">
	<input id="input3" type="text" value="Trzecia kontrolka">

	<p style="color: blue;">Szczegółowe informacje dla przechwyconego zdarzenia:</p>
	<p id="info"></p>

	<script>

		var input1 = document.getElementById("input1");
		var input2 = document.getElementById("input2");
		var input3 = document.getElementById("input3");
		var info = document.getElementById("info");

		function readInfo(e){

			var data = "Interfejs: " + e
				+ "<br>" + "e.type: " + e.type
				+ "<br>" + "e.target: " + e.target
				+ "<br>" + "e.target.value: " + e.target.value
				+ "<br>" + "e.relatedTarget: " + e.relatedTarget;

			if (e.relatedTarget){
				data += "<br>" + "e.relatedTarget.value: " + e.relatedTarget.value;
			}

			data += "<br>" + "e.currentTarget: " + e.currentTarget
				+ "<br>" + "e.eventPhase: " + e.eventPhase + "<br><br>";

			info.innerHTML = data + info.innerHTML;

		}

		input1.addEventListener("focus", readInfo, false); // faza celu - trzeci argument nieistotny
		input2.addEventListener("focus", readInfo, false); // faza celu - trzeci argument nieistotny
		input3.addEventListener("focus", readInfo, false); // faza celu - trzeci argument nieistotny

		window.addEventListener("focus", readInfo, false); // faza celu - trzeci argument nieistotny

		document.addEventListener("focus", readInfo, false); // uchwyt nie zostanie wywołany
		document.documentElement.addEventListener("focus", readInfo, false); // uchwyt nie zostanie wywołany

	</script>

</body>

</html>

Trzeba nadmienić, że uchwyty przez właściwość i uchwyty przez atrybut, które zarejestrowano na elemencie <body> lub elementach ramek, są traktowane tak jakby zarejestrowano je na obiekcie Window, który je zawiera. Uwaga nie dotyczy uchwytów przez metodę.

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<!DOCTYPE html>
<html>

<head>
</head>

<body>

	<p>Zmień zogniskowanie okna (np. poprzez kliknięcie na prawym oknie).</p>

	<p style="color: blue;">Szczegółowe informacje dla przechwyconego zdarzenia:</p>
	<p id="info"></p>

	<script>

		var info = document.getElementById("info");

		function readInfo(e){

			var data = "Interfejs: " + e
				+ "<br>" + "e.type: " + e.type
				+ "<br>" + "e.target: " + e.target
				+ "<br>" + "e.target.value: " + e.target.value
				+ "<br>" + "e.relatedTarget: " + e.relatedTarget;

			if (e.relatedTarget){
				data += "<br>" + "e.relatedTarget.value: " + e.relatedTarget.value;
			}

			data += "<br>" + "e.currentTarget: " + e.currentTarget
				+ "<br>" + "e.eventPhase: " + e.eventPhase + "<br><br>";

			info.innerHTML = data + info.innerHTML;

		}

		document.body.onfocus = readInfo;

		document.body.addEventListener("focus", readInfo, true); // uchwyt nie zostanie wywołany
		document.body.addEventListener("focus", readInfo, false); // uchwyt nie zostanie wywołany

	</script>

</body>

</html>

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Zdarzenia (H1) Typ focus (H2) Specyfikacje i inne materiały (H3)