KeyboardEvent.getModifierState()

Diese Übersetzung ist unvollständig. Bitte helfen Sie, 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

FunktionChromeEdgeFirefoxInternet ExplorerOperaSafari
Grundlegende Unterstützung31 Ja159 Nein Nein
"Accel" is a valid parameter48 ?32 Nein Nein Nein
FunktionAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Grundlegende Unterstützung3131 Ja15 Nein Nein ?
"Accel" is a valid parameter4848 ?32 Nein Nein ?

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Mitwirkende an dieser Seite: amlang
Zuletzt aktualisiert von: amlang,