KeyboardEvent.getModifierState()

Diese Übersetzung ist unvollständig. Bitte helfen Sie uns, diesen Artikel aus dem Englischen zu übersetzen

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.

Syntax

var active = event.getModifierState(keyArg);

Rückgabe 

Einen Boolean

Parameter

keyArg
Ein Modifikatorschlüsselwert. Der Wert muss einer der KeyboardEvent.key Werte sein, die Modifikatorschlüssel darstellen, oder die Zeichenkette "Accel" . Dabei wird zwischen Groß- und Kleinschreibung unterschieden.

Modifikationstasten im Internet Explorer

IE9 verwendet "Scroll" für "ScrollLock" und "Win" für "OS".

Modifikationstasten in Gecko

Wann gibt getModifierState() bei Gecko true zurück?
  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 ) 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
"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.
"FnLock" Nicht unterstützt
"Hyper" Nicht unterstützt
"Meta" Nicht unterstützt Meta Taste wird gedrückt ⌘ 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
"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
"Shift" ⇧ Shift Taste wird gedrückt
"Super" Nicht unterstützt
"Symbol" Nicht unterstützt
"SymbolLock" Nicht unterstützt
  • Auf den anderen Plattformen werden Alt, Control und Shift unterstützt werden.
  • Alle Modifikatoren (außer "FnLock", "Hyper", "Super" und "Symbol", die nach der Implementierung von Gecko definiert werden) stehen immer für nicht vertrauenswürdige Ereignisse auf Gecko zur Verfügung. Das hängt nicht von der Plattform ab.

"Accel" virtueller Modifikator

Notiz: Der virtuelle 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 KeyboardEvent.ctrlKey or 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".

Beispiel

// 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.

Spezifikationen

Spezifikation Status Kommentar
Document Object Model (DOM) Level 3 Events Specification
Die Definition von 'getModifierState()' in dieser Spezifikation.
Veraltet Initiale Definition (Modifier Keys spec)

Browser-Kompatibilität

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid WebviewChrome für AndroidFirefox für AndroidOpera für AndroidSafari auf iOSSamsung Internet
getModifierStateChrome Vollständige Unterstützung 31Edge Vollständige Unterstützung 12Firefox Vollständige Unterstützung 15IE Vollständige Unterstützung 9Opera Vollständige Unterstützung 17Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 4.4.3Chrome Android Vollständige Unterstützung 31Firefox Android Vollständige Unterstützung 15Opera Android Vollständige Unterstützung 18Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 2.0
"Accel" as a parameter
VeraltetNicht standardisiert
Chrome Vollständige Unterstützung 48Edge ? Firefox Vollständige Unterstützung 32IE Keine Unterstützung NeinOpera Vollständige Unterstützung 35Safari Keine Unterstützung NeinWebView Android Vollständige Unterstützung 48Chrome Android Vollständige Unterstützung 48Firefox Android Vollständige Unterstützung 32Opera Android Vollständige Unterstützung 35Safari iOS Keine Unterstützung NeinSamsung Internet Android Vollständige Unterstützung 5.0
"Alt" as a parameter
VeraltetNicht standardisiert
Chrome Vollständige Unterstützung JaEdge ? Firefox Vollständige Unterstützung JaIE ? Opera Vollständige Unterstützung JaSafari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaFirefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung JaSafari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung Ja
"AltGraph" as a parameter
VeraltetNicht standardisiert
Chrome Vollständige Unterstützung 48Edge ? Firefox Vollständige Unterstützung JaIE ? Opera Vollständige Unterstützung 35Safari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung 48Chrome Android Vollständige Unterstützung 48Firefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung 35Safari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung 5.0
"CapsLock" as a parameterChrome Vollständige Unterstützung 48Edge ? Firefox Vollständige Unterstützung JaIE ? Opera Vollständige Unterstützung 35Safari ? WebView Android Vollständige Unterstützung 48Chrome Android Vollständige Unterstützung 48Firefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung 35Safari iOS ? Samsung Internet Android Vollständige Unterstützung 5.0
"Control" as a parameterChrome Vollständige Unterstützung JaEdge ? Firefox Vollständige Unterstützung JaIE ? Opera Vollständige Unterstützung JaSafari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaFirefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung JaSafari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung Ja
"Fn" as a parameterChrome Vollständige Unterstützung 48Edge ? Firefox Vollständige Unterstützung JaIE ? Opera Vollständige Unterstützung 35Safari ? WebView Android Vollständige Unterstützung 48Chrome Android Vollständige Unterstützung 48Firefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung 35Safari iOS ? Samsung Internet Android Vollständige Unterstützung 5.0
"FnLock" as a parameterChrome Vollständige Unterstützung JaEdge ? Firefox Keine Unterstützung NeinIE ? Opera Vollständige Unterstützung JaSafari ? WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaFirefox Android Keine Unterstützung NeinOpera Android Vollständige Unterstützung JaSafari iOS ? Samsung Internet Android Vollständige Unterstützung Ja
"Hyper" as a parameter
Veraltet
Chrome Vollständige Unterstützung JaEdge ? Firefox Keine Unterstützung NeinIE ? Opera Vollständige Unterstützung JaSafari ? WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaFirefox Android Keine Unterstützung NeinOpera Android Vollständige Unterstützung JaSafari iOS ? Samsung Internet Android Vollständige Unterstützung Ja
"Meta" as a parameterChrome Vollständige Unterstützung JaEdge ? Firefox Vollständige Unterstützung JaIE ? Opera Vollständige Unterstützung JaSafari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaFirefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung JaSafari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung Ja
"NumLock" as a parameterChrome Vollständige Unterstützung 48Edge ? Firefox Vollständige Unterstützung JaIE ? Opera Vollständige Unterstützung 35Safari ? WebView Android Vollständige Unterstützung 48Chrome Android Vollständige Unterstützung 48Firefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung 35Safari iOS ? Samsung Internet Android Vollständige Unterstützung 5.0
"OS" as a parameterChrome Vollständige Unterstützung 48Edge Vollständige Unterstützung 12
Alternativer Name
Vollständige Unterstützung 12
Alternativer Name
Alternativer Name Verwendet den nicht standardisierten Namen: Win
Firefox Vollständige Unterstützung JaIE Vollständige Unterstützung Ja
Alternativer Name
Vollständige Unterstützung Ja
Alternativer Name
Alternativer Name Verwendet den nicht standardisierten Namen: Win
Opera Vollständige Unterstützung 35Safari ? WebView Android Vollständige Unterstützung 48Chrome Android Vollständige Unterstützung 48Firefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung 35Safari iOS ? Samsung Internet Android Vollständige Unterstützung 5.0
"ScrollLock" as a parameterChrome Vollständige Unterstützung 48Edge Vollständige Unterstützung 12
Alternativer Name
Vollständige Unterstützung 12
Alternativer Name
Alternativer Name Verwendet den nicht standardisierten Namen: Scroll
Firefox Vollständige Unterstützung JaIE Vollständige Unterstützung Ja
Alternativer Name
Vollständige Unterstützung Ja
Alternativer Name
Alternativer Name Verwendet den nicht standardisierten Namen: Scroll
Opera Vollständige Unterstützung 35Safari ? WebView Android Vollständige Unterstützung 48Chrome Android Vollständige Unterstützung 48Firefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung 35Safari iOS ? Samsung Internet Android Vollständige Unterstützung 5.0
"Shift" as a parameterChrome Vollständige Unterstützung JaEdge ? Firefox Vollständige Unterstützung JaIE ? Opera Vollständige Unterstützung JaSafari Vollständige Unterstützung 10.1WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaFirefox Android Vollständige Unterstützung JaOpera Android Vollständige Unterstützung JaSafari iOS Vollständige Unterstützung 10.3Samsung Internet Android Vollständige Unterstützung Ja
"Super" as a parameter
Veraltet
Chrome Vollständige Unterstützung JaEdge ? Firefox Keine Unterstützung NeinIE ? Opera Vollständige Unterstützung JaSafari ? WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaFirefox Android Keine Unterstützung NeinOpera Android Vollständige Unterstützung JaSafari iOS ? Samsung Internet Android Vollständige Unterstützung Ja
"Symbol" as a parameterChrome Vollständige Unterstützung 48Edge ? Firefox Keine Unterstützung NeinIE ? Opera Vollständige Unterstützung 35Safari ? WebView Android Vollständige Unterstützung 48Chrome Android Vollständige Unterstützung 48Firefox Android Keine Unterstützung NeinOpera Android Vollständige Unterstützung 35Safari iOS ? Samsung Internet Android Vollständige Unterstützung 5.0
"SymbolLock" as a parameterChrome Vollständige Unterstützung JaEdge ? Firefox Keine Unterstützung NeinIE ? Opera Vollständige Unterstützung JaSafari ? WebView Android Vollständige Unterstützung JaChrome Android Vollständige Unterstützung JaFirefox Android Keine Unterstützung NeinOpera Android Vollständige Unterstützung JaSafari iOS ? Samsung Internet Android Vollständige Unterstützung Ja

Legende

Vollständige Unterstützung  
Vollständige Unterstützung
Keine Unterstützung  
Keine Unterstützung
Kompatibilität unbekannt  
Kompatibilität unbekannt
Nicht standardisiert. Erwarte schlechte browserübergreifende Unterstützung.
Nicht standardisiert. Erwarte schlechte browserübergreifende Unterstützung.
Veraltet. Nicht für den Einsatz in neuen Webseiten gedacht.
Veraltet. Nicht für den Einsatz in neuen Webseiten gedacht.
Verwendet einen nicht standardisierten Namen.
Verwendet einen nicht standardisierten Namen.

Siehe auch