Oltre che tutti keyCode, which, charCode e keyIdentifier sono obsoleti:
charCode
e keyIdentifier
sono caratteristiche non standard.
keyIdentifier
viene rimosso da Chrome 54 e Opera 41.0
keyCode
restituisce 0, sull'evento di pressione tasti con caratteri normali su FF.
The key property:
readonly attribute DOMString key
contiene un valore di attributo tasto corrispondente al tasto premuto
Al momento di questa scrittura, la proprietà key
è supportato da tutti i principali browser come di : Firefox 52, Chrome 55, Safari 10.1, Opera 46. Tranne Internet Explorer 11 che ha: Identificatori di chiavi non standard e comportamento errato con AltG Raph.More info
Se questo è importante e/o la compatibilità a ritroso è, quindi è possibile utilizzare il rilevamento funzione come nel codice seguente:
Si noti che il valore key
è diverso da keyCode
o which
immobili a che: contiene il nome della chiave, non il suo codice. Se il tuo programma richiede i codici dei caratteri, puoi utilizzare charCodeAt()
. Per i singoli caratteri stampabili è possibile utilizzare charCodeAt()
, se si ha a che fare con chiavi i cui valori contengono più caratteri come ArrowUp è probabile che si stiano verificando chiavi speciali e si eseguano azioni di conseguenza. Quindi provare l'attuazione di una tabella di valori chiavi e la loro corrispondente codici charCodeArr["ArrowUp"]=38
, charCodeArr["Enter"]=13
, charCodeArr[Escape]=27
... e così via, si prega di dare un'occhiata al Key Values e la loro corresponding codes
if(e.key!=undefined){
var characterCode = charCodeArr[e.key] || e.key.charCodeAt(0);
}else{
/* As @Leonid suggeted */
var characterCode = e.which || e.charCode || e.keyCode || 0;
}
/* ... code making use of characterCode variable */
Può essere che si desidera prendere in considerazione in avanti compatibilità cioè utilizzare le proprietà legacy mentre sono disponibili, e solo quando è sceso interruttore per quelli nuovi:
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;
}
Vedi anche: la KeyboardEvent.code
proprietà docs e alcuni altri dettagli in questo answer.
Potrebbe per favore rispondere in modo corretto, quindi questa domanda non viene visualizzata di nuovo? –