7

Estoy trabajando en el manejo de claves en el script java. Investigué un poco y me gustaría saber si entiendo correctamente el manejo de claves.Manejo de la clave JavaScript y compatibilidad del navegador

KeyDown/KeyUp Evento la tecla abajo y la tecla hasta eventos son compatibles con Internet Explorer 7 y Firefox 3.5 + + No vi las versiones anteriores de los navegadores, pero supongo que también apoyan estos eventos.

Es correcto decir que cada tecla en el teclado siempre tendrá un código clave.

CharCode

valor CharCode está disponible en el keypress.Majority de las claves tendrán los charCodes que representan el valor real. Algunas teclas no tendrán un código asociado asociado. P.ej. retroceder, borrar, teclas de flecha.

¿Puedo decir que al presionar la tecla, el código será el mismo que el código clave?

Orden de los eventos

  • KeyDown
  • KeyPress
  • KeyUp

¿Esta orden se diferencian de un navegador a otro? Por ejemplo, tengo dos funciones. Primero está vinculado al evento KeyDown, el segundo está vinculado al evento KeyPress. Llamar a un evento KeyPress significa que también se llamará al evento KeyDown, cuando quiero que solo uno de estos eventos funcione.

Finalmente he estado considerando utilizar diferentes rutinas de manejo de claves dependiendo del navegador de la versión. Por ejemplo:

  • versión Comprobar navegador
  • Consigue una rutina tecla de gestión en función de la versión del navegador

Esto introducirá un código adicional, pero debe simplificar el mantenimiento. Además, en el futuro, cuando quiera proporcionar un soporte para un navegador diferente, simplemente puedo agregar otra rutina y no afectará la rutina de manejo de caracteres existente.

Hasta ahora he estado leyendo http://www.quirksmode.org

Respuesta

5

El siguiente artículo por Jan Wolter nunca me ha fallado y es de lejos el mejor recurso en eventos clave de navegador He visto: http://unixpapa.com/js/key.html. Responde todas las preguntas que planteaste.

Una cosa para enfatizar es que con el uso cuidadoso de las propiedades de eventos clave a su disposición, usted casi nunca necesitará para buscar un navegador en particular en su código de manejo de teclas.

+0

Hermoso artículo, ¿Incluso se mantiene hoy? –

+0

@SurajJain: Sí, aunque los navegadores modernos admiten propiedades nuevas y mejores, como ['key'] (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key). Dudo que las antiguas propiedades desaparecerán en el corto plazo, aunque oficialmente están en desuso. –

0

Actualización de 2015:

According to MDNevent.charCode, event.keyCode y event.which todos han sido desaprobados. event.key es la forma más novedosa y novedosa de comprobar qué tecla se ha pulsado.

Parece fácil de usar, pero el soporte del navegador no es perfecto. Todo lo que tenemos ahora es soporte parcial en Chrome 45+ (no fuera aún AFAIK), Firefox 23+ e IE 9+.

+1

https://xkcd.com/927/ – aiguofer

Cuestiones relacionadas