MouseEvent#

MouseEvent.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 = mouseEvent.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 MouseEvent.altKey, MouseEvent.ctrlKey, MouseEvent.metaKey czy MouseEvent.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>

	<script>

		function readInfo(context, e){

			var info = document.getElementById("info");
			var modifier = "e.getModifierState('" + context.value + "') :";

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

			info.innerHTML = data + info.innerHTML;

		}

	</script>

</head>

<body>

	<p>Kliknij w przycisk (z opcjonalnym wciśnięciem dedykowanego klawisza modyfikującego) by uzyskać szczegółowe informacje dla zdarzenia.</p>
	<input type="button" value="Alt" onclick="readInfo(this, event)">
	<input type="button" value="AltGraph" onclick="readInfo(this, event)">
	<input type="button" value="Control" onclick="readInfo(this, event)">
	<input type="button" value="Shift" onclick="readInfo(this, event)">
	<input type="button" value="CapsLock" onclick="readInfo(this, event)">
	<input type="button" value="NumLock" onclick="readInfo(this, event)">

	<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

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