Además, todos los keyCode , que , charCode y keyIdentifier están obsoletos:
charCodey keyIdentifierson funciones no estándar.
keyIdentifierse elimina a partir de Chrome 54 y Opera 41.0
keyCodedevuelve 0, en caso de pulsación de tecla con caracteres normales en FF.
La propiedad clave :
readonly attribute DOMString key
Mantiene un valor de atributo de tecla correspondiente a la tecla presionada
En el momento de escribir este artículo, la keypropiedad es compatible con todos los navegadores principales a partir de: Firefox 52, Chrome 55, Safari 10.1, Opera 46. Excepto Internet Explorer 11, que tiene:
identificadores de clave no estándar y comportamiento incorrecto con AltGraph. Más información
Si eso es importante y / o la compatibilidad con versiones anteriores lo es, puede usar la detección de características como en el siguiente código:
Observe que el keyvalor es diferente de keyCodeo whichpropiedades en que: contiene el nombre de la clave, no su código. Si su programa necesita códigos de caracteres, puede utilizarlos charCodeAt(). Para caracteres únicos imprimibles que puede usar charCodeAt(), si está tratando con claves cuyos valores contienen varios caracteres, como es ArrowUp
probable que esté probando claves especiales y tome las medidas correspondientes. A fin de tratar la implementación de una tabla de valores de Keys y sus códigos correspondientes charCodeArr["ArrowUp"]=38, charCodeArr["Enter"]=13, charCodeArr[Escape]=27... y así sucesivamente, por favor miren valores clave y sus códigos correspondientes
if(e.key!=undefined){
var characterCode = charCodeArr[e.key] || e.key.charCodeAt(0);
}else{
var characterCode = e.which || e.charCode || e.keyCode || 0;
}
Es posible que desee considerar la compatibilidad con versiones posteriores, es decir, usar las propiedades heredadas mientras estén disponibles, y solo cuando se suelten, cambie a las nuevas:
if(e.which || e.charCode || e.keyCode ){
var characterCode = e.which || e.charCode || e.keyCode;
}else if (e.key!=undefined){
var characterCode = charCodeArr[e.key] || e.key.charCodeAt(0);
}else{
var characterCode = 0;
}
Consulte también: los documentos deKeyboardEvent.code propiedad y algunos detalles más en esta respuesta .
.keyes compatible con todos los principales desarrolladores de