--- title: KeyboardEvent.getModifierState() slug: Web/API/KeyboardEvent/getModifierState translation_of: Web/API/KeyboardEvent/getModifierState ---
{{APIRef("DOM Events")}}
Die Methode KeyboardEvent.getModifierState()
gibt den aktuellen Zustand des angegebenen Modifikators zurück: true
, wenn der Modifikator aktiv ist (d.h. die Modifikationstasten gedrückt oder gesperrt ist), ansonsten false
.
var active = event.getModifierState(keyArg);
Einen {{jsxref("Boolean")}}
keyArg
IE9 verwendet "Scroll"
für "ScrollLock"
und "Win"
für "OS"
.
Windows | Linux (GTK) | Mac | Android 2.3 | Android 3.0 und später | |
---|---|---|---|---|---|
"Alt" |
Entweder die Alt oder AltGr -Taste gedrückt wird | Alt -Taste gedrückt wird | ⌥ Option -Taste gedrückt wird | Alt oder option -Taste gedrückt wird | |
"AltGraph" |
Sowohl die Alt als auch die Strg werden gedrückt, oder die AltGr Taste wird gedrückt |
Level 3 Shift Taste (or Level 5 Shift Taste {{gecko_minversion_inline("20.0")}}) wird gedrückt | ⌥ Option Taste wird gedrückt | Nicht unterstützt | |
"CapsLock" |
Während die LED für ⇪ Caps Lock leuchtet | Nicht unterstützt | Solange ⇪ Caps Lock gesperrt ist {{gecko_minversion_inline("29.0")}} | ||
"Control" |
Entweder die Strg oder AltGr -Taste wird gedrückt | Strg Taste wird gedrückt | control Taste wird gedrückt | menu Taste wird gedrückt. | Strg, control oder menu Taste wird gedrückt. |
"Fn" |
Nicht unterstützt | Die Function wird gedrückt, aber wir sind nicht sicher, welche Taste den Modifikatorstatus aktiv setzt. Die Fn-Taste auf der Mac-Tastatur bewirkt dies nicht. {{gecko_minversion_inline("29.0")}} |
|||
"FnLock" |
Nicht unterstützt | ||||
"Hyper" |
Nicht unterstützt | ||||
"Meta" |
Nicht unterstützt | Meta Taste wird gedrückt {{gecko_minversion_inline("17.0")}} | ⌘ Command Taste wird gedrückt | Nicht unterstützt | ⊞ Windows Logo or command Taste gedrückt wird |
"NumLock" |
Während die LED für Num Lock leuchtet | Eine Taste auf dem Nummerblock gedrückt wird | Nicht unterstützt | Solange NumLock gesperrt ist {{gecko_minversion_inline("29.0")}} | |
"OS" |
⊞ Windows Logo Taste wird gedrückt | Super or Hyper Taste wird gedrückt (normalerweise auf der ⊞ Windows Logo Taste zugeordnet) | Nicht unterstützt | ||
"ScrollLock" |
Während die LED für ScrollLock leuchtet | Während die LED für ScrollLock leuchtet, aber normalerweise wird dies von der Plattform nicht unterstützt | Nicht unterstützt | Solange ScrollLock gesperrt {{gecko_minversion_inline("29.0")}} | |
"Shift" |
⇧ Shift Taste wird gedrückt | ||||
"Super" |
Nicht unterstützt | ||||
"Symbol" |
Nicht unterstützt | ||||
"SymbolLock" |
Nicht unterstützt |
"Accel"
virtueller Modifikator"Accel"
ist in den aktuellen Entwürfen der DOM3 Events-Spezifikation praktisch veraltet.getModifierState()
also accepts a deprecated virtual modifier named "Accel"
. event.getModifierState("Accel")
returns true
when at least one of {{domxref("KeyboardEvent.ctrlKey")}} or {{domxref("KeyboardEvent.metaKey")}} is true
.
In old implementations and outdated specifications, it returned true
when a modifier which is the typical modifier key for the shortcut key is pressed. For example, on Windows, pressing Ctrl key may make it return true
. However, on Mac, pressing ⌘ Command key may make it return true
. Note that which modifier key makes it return true depends on platforms, browsers, and user settings. For example, Firefox users can customize this with a pref, "ui.key.accelKey"
.
// Ignorieren, wenn folgender Modifikator aktiv ist. if (event.getModifierState("Fn") || event.getModifierState("Hyper") || event.getModifierState("OS") || event.getModifierState("Super") || event.getModifierState("Win") /* hack for IE */) { return; } // auch ignorieren, wenn zwei oder mehr Modifikatoren außer Shift aktiv sind. if (event.getModifierState("Control") + event.getModifierState("Alt") + event.getModifierState("Meta") > 1) { return; } // Tastaturkürzel mit Standardmodifikator if (event.getModifierState("Accel")) { switch (event.key.toLowerCase()) { case "c": if (event.getModifierState("Shift")) { // Handle Accel + Shift + C event.preventDefault(); // consume the key event } break; case "k": if (!event.getModifierState("Shift")) { // Handle Accel + K event.preventDefault(); // consume the key event } break; } return; } // Mach etwas anderes für die Pfeiltasten, wenn ScrollLock gesperrt ist. if ((event.getModifierState("ScrollLock") || event.getModifierState("Scroll") /* hack for IE */) && !event.getModifierState("Control") && !event.getModifierState("Alt") && !event.getModifierState("Meta")) { switch (event.key) { case "ArrowDown": case "Down": // Hack für IE und älteren Gecko event.preventDefault(); // Schlüsselereignis verwenden break; case "ArrowLeft": case "Left": // Hack für IE und älteren Gecko // Mach etwas anderes für die Pfeiltasten, wenn ScrollLock gesperrt ist. event.preventDefault(); // Schlüsselereignis verwenden break; case "ArrowRight": case "Right": // Hack für IE und älteren Gecko // Mach etwas anderes für die Pfeiltasten, wenn ScrollLock gesperrt ist. event.preventDefault(); // Schlüsselereignis verwenden break; case "ArrowUp": case "Up": // Hack für IE und älteren Gecko // Mach etwas anderes für die Pfeiltasten, wenn ScrollLock gesperrt ist. event.preventDefault(); // Schlüsselereignis verwenden break; } }
Obwohl dieses Beispiel .getModifierState()
mit "Alt"
, "Control"
, "Meta"
und "Shift"
verwendet, ist es vielleicht besser, altKey
, ctrlKey
, metaKey
und shiftKey
zu verwenden, da sie kürzer und vielleicht schneller sind.
Spezifikation | Status | Kommentar |
---|---|---|
{{SpecName('DOM3 Events', '#widl-KeyboardEvent-getModifierState', 'getModifierState()')}} | {{Spec2('DOM3 Events')}} | Initiale Definition (Modifier Keys spec) |
{{Compat("api.KeyboardEvent.getModifierState")}}