Tengo un detector de eventos en Javascript, puedo decir si un evento clave es Ctrl (e.keyCode == 17)
, pero ¿cómo puedo saber que esta Ctrl viene de la derecha o de la izquierda?¿Cómo puedo saber si un evento proviene de la tecla Ctrl derecha?
Respuesta
No creo que el código de tecla sea diferente.
Puede usar e.ctrlKey
para conocer mejor si se presionó la tecla de control.
Parece Flash can not tell which one is pressed cualquiera (ya sea o codificado incorrectamente).
Se abstraen. P.ej. Puedo elegir una tonelada de opciones diferentes para cada uno de ellos en mi configuración del Teclado de Ubuntu. –
Definitivamente puede escribir software que diferencie entre los dos en un nivel bajo, por lo que no, no puede abstraerse en el nivel del hardware. Sin embargo, probablemente esté abstraído en el nivel del sistema operativo. –
MSIE puede diferenciar la tecla Ctrl izquierda y derecha, ver mi respuesta sobre ese punto. –
Solo una nota rápida: no basaría una arquitectura/diseño en la disponibilidad de la tecla de control derecha; es posible que muchos teclados portátiles no tengan dos teclas de control.
+1 para obtener información útil. – alex
MSIE proporciona una propiedad ctrlLeft
en la mayoría de los eventos. Los valores de las propiedades son:
true
si la tecla izquierda se presiona durante el eventofalse
si la tecla izquierda no se ha pulsado.
Puede combinar event.ctrlKey
y event.ctrlLeft
para determinar si se ha pulsado la tecla Ctrl derecha:
if (event.ctrlKey) {
if (event.ctrlLeft) {
// left Ctrl key pressed
} else {
// right Ctrl key pressed
}
} else {
// no Ctrl key pressed
}
Tenga en cuenta que la propiedad ctrlLeft
en un keyup
no está definido porque la tecla Ctrl no se presiona más.
Probado bajo MSIE7 y MSIE9. No funciona en Firefox.
Ver http://help.dottoro.com/ljqlvhuf.php para más detalles.
Desafortunadamente no es muy útil si solo es IE. – alex
Si rastreamos se encuentra la misma clave se utiliza para ambos (17) .. Creo que no es posible diferenciar
no sé si estaba disponible cuando este se le pidió, pero usted puede distinguir izquierda-derecha-ctrl, así como alt y shift. Ahora puede usar las propiedades KeyboardEvent.DOM_KEY_LOCATION_ * para hacer esta distinción.
Ver Can javascript tell the difference between left and right shift key?
Tenga en cuenta, sin embargo, he descubierto que Chrome parece tener un defecto en su aplicación. Ver How can I distinguish left- and right- shift, ctrl, and alt keys onkeyup in Chrome with Javascript
Hay event.location
propiedad de tecla CTRL izquierda será 1 para una correcta 2, se puede comprobar la compatibilidad con exploradores en canIuse
if (e.which == 17) {
if (event.location == 1) {
// left ctrl key
} else if (event.location == 2) {
// right ctrl key
}
}
- 1. ¿Se puede distinguir entre la tecla CTRL izquierda y la tecla CTRL derecha usando códigos de tecla en .keypress()?
- 2. ¿Cómo saber si una solicitud proviene de un proxy?
- 3. ¿Cómo puedo saber si la entrada del teclado proviene de un escáner de código de barras?
- 4. ¿Cómo saber si se presiona Shift en un evento MouseDown?
- 5. ¿Está presionada la tecla 'Ctrl'?
- 6. Pruebe si la tecla Ctrl está presionada con C#
- 7. ¿Cómo saber de dónde proviene la alerta?
- 8. ¿Existe una forma universal de saber si el usuario está presionando la tecla CTRL o no?
- 9. javascript - detectar la tecla Ctrl presionada o arriba, evento de pulsación de tecla no desencadena
- 10. Evento KeyDown: cómo saber fácilmente si la tecla presionada es numérica.
- 11. Prueba de la tecla 'Ctrl' en C#
- 12. teclas Ctrl Vim-Izquierda/Derecha Ctrl-comportamiento
- 13. ¿Cómo puedo atrapar un evento ctrl-c? (C++)
- 14. Ctrl + - (Ctrl + Hyphen-Minus) como tecla de abreviatura?
- 15. ¿Cómo puedo saber cuándo se presiona la tecla Intro en un cuadro de texto?
- 16. ¿Cómo saber si .keyup() es una tecla de carácter (jQuery)
- 17. oprimida la tecla CTRL deshabilitado en iTerm.app
- 18. ¿Cómo saber qué tecla SHIFT se presionó?
- 19. ¿Cómo puedo saber si un delegado en particular ya ha sido asignado a un evento?
- 20. ¿Cómo puedo aceptar la tecla de retroceso en el evento de pulsación de tecla?
- 21. ¿Cómo puedo saber si un Arrastramiento ha finalizado en Winforms?
- 22. Simule el evento de la tecla de flecha izquierda y derecha con javascript
- 23. MSysGit Bash: ¿cómo habilitar Ctrl + flechas hacia la izquierda/derecha?
- 24. ¿Cómo puedo saber si un secuenciador está cerrado?
- 25. ¿Cómo sé si la solicitud proviene de flash swf?
- 26. Condición de pulsación de tecla Ctrl en WPF MouseLeftButtonDown controlador de evento
- 27. ¿Cómo saber si una publicación proviene de una llamada ajax en codeigniter?
- 28. ¿Cómo puedo saber si un evento ManualResetEvent está señalizado o no señalizado?
- 29. ¿Cómo puedo saber si se presiona el cambio usando RawInput?
- 30. ¿Cómo puedo saber si un elemento coincide con un selector?
No se puede. Lo siento. Siento tu dolor. – zzzzBov