KeyboardEvent#

KeyboardEvent.getModifierState()#

Metoda getModifierState() zwraca boolowską wartość true jeśli przekazany łańcuch znakowy odpowiada klawiszowi modyfikującemu i w chwili wysłania danego zdarzenia miał on aktywny stan, w przeciwnym razie zwrócona zostanie wartość false.

Składnia#

Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
var activeKey = keyboardEvent.getModifierState(key);

Algorytm wywołania metody getModifierState(key) nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:

  1. Zwróć boolowskie true jeśli key jest klawiszem modyfikującym i w chwili wysłania do obiektu kontekstu miał on aktywny stan. W przeciwnym razie zwróć boolowskie false.

Metoda getModifierState() w przeciwieństwie do standardowych właściwości KeyboardEvent.altKey, KeyboardEvent.ctrlKey, KeyboardEvent.metaKey czy KeyboardEvent.shiftKey pozwala sprawdzić stan aktywności dowolnego klawisza modyfikującego.

Informację pozwalającą odróżnić od siebie lewy i prawy klawisz modyfikujący można odczytać ze zdarzenia klawiatury przy użyciu właściwości KeyboardEvent.location.

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>

	<script>

		// Uruchom po całkowitym załadowaniu dokumentu
		window.onload = function(){

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

			function readInfo(e){

				var modifier = "e.getModifierState('" + e.key + "') :";

				var data = "Interfejs: " + e
					+ "<br>" + "e.type: " + e.type
					+ "<br>" + "e.key: " + e.key
					+ "<br>" + modifier + e.getModifierState(e.key) + "<br><br>";

				info.innerHTML = info.innerHTML +  data;

			}

			input.addEventListener("keydown", readInfo, false);
			input.addEventListener("keyup", readInfo, false);

		}

	</script>

</head>

<body>

	<p>Ustaw zogniskowanie w poniższej kontrolce i wciśnij jeden z klawiszy modyfikujących by uzyskać szczegółowe informacje dla zdarzenia.</p>
	<input id="input" type="text" value="Wybierz mnie">

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

</body>

</html>

Na chwilę obecną jedynie przeglądarki Firefox i IE11 obsługują metodę getModifierState(), a podstawowa różnica polega na tym, że dla IE11 wielkość znaków w argumencie przekazanym do metody nie ma znaczenia.

Interfejs Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
boolean getModifierState(DOMString key);

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

KeyboardEvent (H1) KeyboardEvent.getModifierState() (H2) Składnia (H3) Interfejs Web IDL (H3) Specyfikacje i inne materiały (H3)