Estás leyendo la versión en inglés del artículo porque aún no existe una traducción para este idioma. ¡Ayúdanos a traducir este artículo!
El método KeyboardEvent.getModifierState()
retorna true
respecto al estado actual de la tecla modificadora especificada si la misma está presionada o bloqueada, en caso contrario devuelve false
.
Sintaxis
var active = event.getModifierState(keyArg);
Retorna
A Boolean
Parámetros
keyArg
- El valor de la tecla modificadora. El valor debe ser uno de los valores
KeyboardEvent.key
que representan las teclas modificadoras, o el string"Accel"
, el cual es case-sensitive.
Teclas modificadoras en Internet Explorer
IE9 usa "Scroll"
para "ScrollLock"
y "Win"
para "OS"
.
Teclas modificadoras en Gecko
Windows | Linux (GTK) | Mac | Android 2.3 | Android 3.0 or latter | |
---|---|---|---|---|---|
"Alt" |
Either Alt key or AltGr key pressed | Alt key pressed | ⌥ Option key pressed | Alt key or option key pressed | |
"AltGraph" |
Both Alt and Ctrl keys are pressed, or AltGr key is pressed |
Level 3 Shift key (or Level 5 Shift key ) pressed | ⌥ Option key pressed | Not supported | |
"CapsLock" |
During LED for ⇪ Caps Lock turned on | Not supported | While CapsLock is locked | ||
"Control" |
Either Ctrl key or AltGr key pressed | Ctrl key pressed | control key pressed | menu key pressed. | Ctrl key, control key or menu key pressed. |
"Fn" |
Not supported | Function key is pressed, but we're not sure what key makes the modifier state active. Fn key on Mac keyboard doesn't cause this active. | |||
"FnLock" |
Not supported | ||||
"Hyper" |
Not supported | ||||
"Meta" |
Not supported | Meta key pressed | ⌘ Command key pressed | Not supported | ⊞ Windows Logo key or command key pressed |
"NumLock" |
During LED for Num Lock turned on | A key on numpad pressed | Not supported | While NumLock is locked | |
"OS" |
⊞ Windows Logo key pressed | Super key or Hyper key pressed (typically, mapped to ⊞ Windows Logo key) | Not supported | ||
"ScrollLock" |
During LED for Scroll Lock turned on | During LED for Scroll Lock turned on, but typically this isn't supported by platform | Not supported | While ScrollLock is locked | |
"Shift" |
⇧ Shift key pressed | ||||
"Super" |
Not supported | ||||
"Symbol" |
Not supported | ||||
"SymbolLock" |
Not supported |
- On the other platforms, "Alt", "Control" and "Shift" may be supported.
- All modifiers (except
"FnLock"
,"Hyper"
,"Super"
and"Symbol"
which are defined after Gecko implements this) are always supported for untrusted events on Gecko. This doesn't depend on the platform.
El modificador virtual "Accel"
"Accel"
virtual modifier has been effectively deprecated in current drafts of the DOM3 Events specification.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"
.
Ejemplo
// Ignore if following modifier is active. if (event.getModifierState("Fn") || event.getModifierState("Hyper") || event.getModifierState("OS") || event.getModifierState("Super") || event.getModifierState("Win") /* hack for IE */) { return; } // Also ignore if two or more modifiers except Shift are active. if (event.getModifierState("Control") + event.getModifierState("Alt") + event.getModifierState("Meta") > 1) { return; } // Handle shortcut key with standard modifier 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; } // Do somethig different for arrow keys if ScrollLock is locked. 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 for IE and old Gecko event.preventDefault(); // consume the key event break; case "ArrowLeft": case "Left": // hack for IE and old Gecko // Do something different if ScrollLock is locked. event.preventDefault(); // consume the key event break; case "ArrowRight": case "Right": // hack for IE and old Gecko // Do something different if ScrollLock is locked. event.preventDefault(); // consume the key event break; case "ArrowUp": case "Up": // hack for IE and old Gecko // Do something different if ScrollLock is locked. event.preventDefault(); // consume the key event break; } }
Although, this example uses .getModifierState()
with "Alt"
, "Control"
, "Meta"
and "Shift"
, perhaps it's better for you to use altKey
, ctrlKey
, metaKey
and shiftKey
because they are shorter and may be faster.
Especificaciones
Especificaciones | Estado | Comentario |
---|---|---|
Document Object Model (DOM) Level 3 Events Specification La definición de 'getModifierState()' en esta especificación. |
Obsolete | Initial definition (Modifier Keys spec) |
Compatibilidad con Browsers
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
getModifierState | Chrome Soporte completo 31 | Edge Soporte completo 12 | Firefox Soporte completo 15 | IE Soporte completo 9 | Opera Soporte completo 17 | Safari Soporte completo 10.1 | WebView Android Soporte completo 4.4.3 | Chrome Android Soporte completo 31 | Firefox Android Soporte completo 15 | Opera Android Soporte completo 18 | Safari iOS Soporte completo 10.3 | Samsung Internet Android Soporte completo Si |
"Accel" as a parameter | Chrome Soporte completo 48 | Edge ? | Firefox Soporte completo 32 | IE Sin soporte No | Opera Soporte completo 35 | Safari Sin soporte No | WebView Android Soporte completo 48 | Chrome Android Soporte completo 48 | Firefox Android Soporte completo 32 | Opera Android Soporte completo 35 | Safari iOS Sin soporte No | Samsung Internet Android Soporte completo 5.0 |
"Alt" as a parameter | Chrome Soporte completo Si | Edge ? | Firefox Soporte completo Si | IE ? | Opera Soporte completo Si | Safari Soporte completo 10.1 | WebView Android Soporte completo Si | Chrome Android Soporte completo Si | Firefox Android Soporte completo Si | Opera Android Soporte completo Si | Safari iOS Soporte completo 10.3 | Samsung Internet Android Soporte completo Si |
"AltGraph" as a parameter | Chrome Soporte completo 48 | Edge ? | Firefox Soporte completo Si | IE ? | Opera Soporte completo 35 | Safari Soporte completo 10.1 | WebView Android Soporte completo 48 | Chrome Android Soporte completo 48 | Firefox Android Soporte completo Si | Opera Android Soporte completo 35 | Safari iOS Soporte completo 10.3 | Samsung Internet Android Soporte completo 5.0 |
"CapsLock" as a parameter | Chrome Soporte completo 48 | Edge ? | Firefox Soporte completo Si | IE ? | Opera Soporte completo 35 | Safari ? | WebView Android Soporte completo 48 | Chrome Android Soporte completo 48 | Firefox Android Soporte completo Si | Opera Android Soporte completo 35 | Safari iOS ? | Samsung Internet Android Soporte completo 5.0 |
"Control" as a parameter | Chrome Soporte completo Si | Edge ? | Firefox Soporte completo Si | IE ? | Opera Soporte completo Si | Safari Soporte completo 10.1 | WebView Android Soporte completo Si | Chrome Android Soporte completo Si | Firefox Android Soporte completo Si | Opera Android Soporte completo Si | Safari iOS Soporte completo 10.3 | Samsung Internet Android Soporte completo Si |
"Fn" as a parameter | Chrome Soporte completo 48 | Edge ? | Firefox Soporte completo Si | IE ? | Opera Soporte completo 35 | Safari ? | WebView Android Soporte completo 48 | Chrome Android Soporte completo 48 | Firefox Android Soporte completo Si | Opera Android Soporte completo 35 | Safari iOS ? | Samsung Internet Android Soporte completo 5.0 |
"FnLock" as a parameter | Chrome Soporte completo Si | Edge ? | Firefox Sin soporte No | IE ? | Opera Soporte completo Si | Safari ? | WebView Android Soporte completo Si | Chrome Android Soporte completo Si | Firefox Android Sin soporte No | Opera Android Soporte completo Si | Safari iOS ? | Samsung Internet Android Soporte completo Si |
"Hyper" as a parameter | Chrome Soporte completo Si | Edge ? | Firefox Sin soporte No | IE ? | Opera Soporte completo Si | Safari ? | WebView Android Soporte completo Si | Chrome Android Soporte completo Si | Firefox Android Sin soporte No | Opera Android Soporte completo Si | Safari iOS ? | Samsung Internet Android Soporte completo Si |
"Meta" as a parameter | Chrome Soporte completo Si | Edge ? | Firefox Soporte completo Si | IE ? | Opera Soporte completo Si | Safari Soporte completo 10.1 | WebView Android Soporte completo Si | Chrome Android Soporte completo Si | Firefox Android Soporte completo Si | Opera Android Soporte completo Si | Safari iOS Soporte completo 10.3 | Samsung Internet Android Soporte completo Si |
"NumLock" as a parameter | Chrome Soporte completo 48 | Edge ? | Firefox Soporte completo Si | IE ? | Opera Soporte completo 35 | Safari ? | WebView Android Soporte completo 48 | Chrome Android Soporte completo 48 | Firefox Android Soporte completo Si | Opera Android Soporte completo 35 | Safari iOS ? | Samsung Internet Android Soporte completo 5.0 |
"OS" as a parameter | Chrome Soporte completo 48 | Edge
Soporte completo
12
| Firefox Soporte completo Si | IE
Soporte completo
Si
| Opera Soporte completo 35 | Safari ? | WebView Android Soporte completo 48 | Chrome Android Soporte completo 48 | Firefox Android Soporte completo Si | Opera Android Soporte completo 35 | Safari iOS ? | Samsung Internet Android Soporte completo 5.0 |
"ScrollLock" as a parameter | Chrome Soporte completo 48 | Edge
Soporte completo
12
| Firefox Soporte completo Si | IE
Soporte completo
Si
| Opera Soporte completo 35 | Safari ? | WebView Android Soporte completo 48 | Chrome Android Soporte completo 48 | Firefox Android Soporte completo Si | Opera Android Soporte completo 35 | Safari iOS ? | Samsung Internet Android Soporte completo 5.0 |
"Shift" as a parameter | Chrome Soporte completo Si | Edge ? | Firefox Soporte completo Si | IE ? | Opera Soporte completo Si | Safari Soporte completo 10.1 | WebView Android Soporte completo Si | Chrome Android Soporte completo Si | Firefox Android Soporte completo Si | Opera Android Soporte completo Si | Safari iOS Soporte completo 10.3 | Samsung Internet Android Soporte completo Si |
"Super" as a parameter | Chrome Soporte completo Si | Edge ? | Firefox Sin soporte No | IE ? | Opera Soporte completo Si | Safari ? | WebView Android Soporte completo Si | Chrome Android Soporte completo Si | Firefox Android Sin soporte No | Opera Android Soporte completo Si | Safari iOS ? | Samsung Internet Android Soporte completo Si |
"Symbol" as a parameter | Chrome Soporte completo 48 | Edge ? | Firefox Sin soporte No | IE ? | Opera Soporte completo 35 | Safari ? | WebView Android Soporte completo 48 | Chrome Android Soporte completo 48 | Firefox Android Sin soporte No | Opera Android Soporte completo 35 | Safari iOS ? | Samsung Internet Android Soporte completo 5.0 |
"SymbolLock" as a parameter | Chrome Soporte completo Si | Edge ? | Firefox Sin soporte No | IE ? | Opera Soporte completo Si | Safari ? | WebView Android Soporte completo Si | Chrome Android Soporte completo Si | Firefox Android Sin soporte No | Opera Android Soporte completo Si | Safari iOS ? | Samsung Internet Android Soporte completo Si |
Leyenda
- Soporte completo
- Soporte completo
- Sin soporte
- Sin soporte
- Compatibilidad desconocida
- Compatibilidad desconocida
- No estandar . Esperar poco soporte entre navegadores.
- No estandar . Esperar poco soporte entre navegadores.
- Deprecado. No debe ser usado en nuevos sitios web.
- Deprecado. No debe ser usado en nuevos sitios web.
- Usa un nombre no estandar.
- Usa un nombre no estandar.
Ver también
- The
KeyboardEvent
this method belongs to. MouseEvent.getModifierState