Propiedad "which" de "KeyboardEvent"
Definición y uso
La propiedad "which" devuelve el desencadenador Evento onkeypress Código de carácter Unicode del tecla, o desencadenar onkeydown o onkeyup Código de tecla Unicode del tecla del evento
Diferencias entre los dos tipos de códigos:
- Código de carácter - representa el número del carácter ASCII
- Código de tecla - representa el número real de la tecla en el teclado
Este tipo no siempre significa lo mismo. Por ejemplo, las teclas en minúscula "w" y en mayúscula "W" tienen el mismo código de teclado, ya que la tecla pulsada es la misma ("W" = número "87"), pero el código de carácter es diferente, ya que el carácter resultante es diferente ("w" o "W", es decir, "119" o "87"). - Consulte los ejemplos a continuación para comprender mejor esto.
Consejo:Si desea saber si el usuario ha pulsado una tecla imprimible (por ejemplo, "a" o "5"), recomienda usar esta propiedad en el evento onkeypress. Para saber si el usuario ha pulsado una tecla de función (por ejemplo, "F1", "CAPS LOCK" o "Home"), utilice los eventos onkeydown o onkeyup.
Comentario:Las versiones de IE8 y anteriores no admiten el atributo which. Para estas versiones de navegador, puede usar la propiedad keyCode. Sin embargo, la propiedad keyCode no funciona en eventos onkeypress de Firefox. Para una solución multi-navegador, puede usar el siguiente código:
var x = event.which || event.keyCode; // Use which o keyCode, dependiendo del soporte del navegador
Consejo:Para obtener una lista de todos los caracteres Unicode, consulte nuestra Referencia completa de Unicode.
Consejo:Si desea convertir un valor Unicode en un carácter, utilice Método fromCharCode().
Comentario:Esta propiedad es de solo lectura.
Comentario:Se proporcionan las propiedades keyCode y which solo por compatibilidad. La versión más reciente de la especificación de eventos DOM sugiere usar la propiedad key (si está disponible).
Consejo:Si desea saber si se pulsó la tecla "ALT", "CTRL", "META" o "SHIFT" en el momento del evento de pulsación de tecla, utilice altKey、ctrlKey、metaKey o shiftKey Atributo.
Ejemplo
Obtener el valor Unicode de la tecla pulsada:
var x = event.which;
En la parte inferior de la página hay más ejemplos de TIY.
Sintaxis
event.which
Detalles técnicos
Valor devuelto: | Valor numérico, que representa el código de carácter Unicode o el código de teclado Unicode. |
---|---|
Versión del DOM: | DOM Level 2 Events |
Soporte del navegador
Los números en la tabla indican la versión del navegador que primero admite completamente el atributo.
Atributo | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
which | Soporte | 9.0 | Soporte | Soporte | Soporte |
Más ejemplos
Ejemplo
Se utiliza onkeypress y onkeydown para mostrar la diferencia entre los códigos de caracteres y los códigos de teclado:
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> function uniCharCode(event) { var char = event.which || event.keyCode; // event.keyCode se utiliza en IE8 y versiones anteriores document.getElementById("demo").innerHTML = "Código de CARACTER Unicode: " + char; } function uniKeyCode(event) { var key = event.which || event.keyCode; // event.keyCode se utiliza en IE8 y versiones anteriores document.getElementById("demo2").innerHTML = "Código de KEY Unicode: " + key; }
Al presionar la tecla "a" en el teclado (sin usar Capslock), los resultados de char y key serán:
Código de CARACTER Unicode: 97 Código de KEY Unicode: 65
Ejemplo
Si el usuario presiona la tecla Escape, se mostrará algún texto:
<input type="text" onkeydown="myFunction(event)"> function myFunction(event) { var x = event.which || event.keyCode; // event.keyCode se utiliza en IE8 y versiones anteriores if (x == 27) { // 27 es la tecla ESC alert("¡Has presionado la tecla de Escape!"); } }
Ejemplo
Convertir el valor Unicode en un carácter (no se aplica a los atajos de teclado):
var x = event.which || event.keyCode; // Obtener el valor Unicode var y = String.fromCharCode(x); // Convertir el valor en un carácter
Páginas relacionadas
Manual de referencia HTML DOM:Atributo key de KeyboardEvent
Manual de referencia HTML DOM:Atributo keyCode de KeyboardEvent
Manual de referencia HTML DOM:Atributo charCode de KeyboardEvent