KeyboardEvent#
KeyboardEvent.location#
Właściwość location
zwraca liczbę całkowitą reprezentującą lokalizację klawisza na urządzeniu wejściowym, który spowodował wysłanie danego zdarzenia. Właściwość jest tylko do odczytu.
Składnia#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var what_location = keyboardEvent.location;
gdzie poszczególne człony oznaczają:
what_location
- liczba całkowita reprezentująca lokalizację klawisza na urządzeniu wejściowym. Dostępne są następujące możliwości:0
- wskazuje na klawisz, który nie ma lewego i prawego odpowiednika oraz nie pochodzi z klawiatury numerycznej (ale z uwzględnieniem klawisza'NumLock'
). Odpowiadająca stała toDOM_KEY_LOCATION_STANDARD
.1
- wskazuje na klawisz, który pochodzi z lewej lokalizacji. Odpowiadająca stała toDOM_KEY_LOCATION_LEFT
.2
- wskazuje na klawisz, który pochodzi z prawej lokalizacji. Odpowiadająca stała toDOM_KEY_LOCATION_RIGHT
.3
- wskazuje na klawisz, który pochodzi z części numerycznej (prócz klawisza'NumLock'
). Odpowiadająca stała toDOM_KEY_LOCATION_NUMPAD
.
Poszczególne implementacje mogą wprowadzać nowe wartości lokalizacji, ale muszę się one różnić od tych, które wymieniono wyżej.
keyboardEvent
- zdarzenie będące obiektem kontekstu.
Przy tworzeniu zdarzenia wartością domyślną dla właściwości location
musi być wartość 0
(stała DOM_KEY_LOCATION_STANDARD
).
W przypadku syntetycznych zdarzeń możemy samodzielnie ustawić lokalizację klawisza dla zdarzenia, np. w czasie tworzenia lub inicjowania zdarzenia.
Prosty przykład:
<!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 loc_cons = ["DOM_KEY_LOCATION_STANDARD", "DOM_KEY_LOCATION_LEFT", "DOM_KEY_LOCATION_RIGHT", "DOM_KEY_LOCATION_NUMPAD"];
var data = "Interfejs: " + e
+ "<br>" + "e.type: " + e.type
+ "<br>" + "e.key: " + e.key
+ "<br>" + "e.location: " + e.location + " [" + loc_cons[e.location] + "]" + "<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 dowolny klawisz (z opcjonalnym modyfikatorem) 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 prawidłowo obsługują właściwość location
. Chrome zwraca nieprawidłową wartość w przypadku zwalniania modyfikatorów (niezależnie od przycisku zawsze jest to cyfra 0
).
Interfejs Web IDL#
readonly attribute unsigned long location;