Questa pagina jQuery dice quell'evento.che deve essere normalizzato per coerenza tra browser. Ma sembra che questo non sia vero.
jQuery normalizza la proprietà nome (ad esempio, sempre which
, piuttosto che which
o keyCode
a seconda del browser), ma non il valore di della proprietà, che sarebbe drammaticamente più complessa.
Il valore per la chiave che si ottiene da keydown
/keyup
varia non solo dal browser, ma dal layout della tastiera. Ci sono molti dettagli cruenti sulla pagina JavaScript Madness: Keyboard Events di Jan Wolter. Tra le altre cose, puoi vedere su quella pagina che per quella chiave, Firefox ti darà 109, IE (e apparentemente Chrome) ti darà 189, e Opera apparentemente usato per andare con 45 (ma nei miei test su Linux, loro ora vai con 109).
Per sequenze di tasti stampabili (come -
), si sta meglio con l'evento keypress
, che vi dà il carattere risultante .
fonte
2013-08-12 10:42:25
Grazie mille per il chiarimento! –
A partire da jQuery 1.11, non sembra che jQuery normalizzi completamente la proprietà 'event.which', almeno in FireFox. Come si può vedere qui: http://jsbin.com/sozoqiro/1/edit?html,console 'event.which' e' event.keyCode' hanno valori diversi a seconda della chiave che si preme. Premendo un carattere di stampa sembra popolare 'e.which' mentre il tasto Tab popola per esempio' e.keyCode' e il tasto Invio popola sia 'e.which' che' e.keyCode' con lo stesso valore. In FireFox, il valore della proprietà non popolato è impostato su '0'. – DavidScherer
In Chrome, sembra essere normalizzato, ma "keypress" non sembra attivare i tasti Tab in Chrome. – DavidScherer