7

Sto lavorando alla gestione delle chiavi nello script java. Ho fatto qualche ricerca e mi piacerebbe sapere se ho una corretta comprensione della gestione delle chiavi.Gestione chiavi JavaScript e compatibilità browser

TastoGiù/KeyUp eventi La chiave verso il basso e la chiave gli eventi sono supportati da IE7 + e Firefox 3.5+ Non ho controllato le versioni precedenti dei browser, ma credo che anche loro sostengono questi eventi.

È corretto dire che ogni tasto sulla tastiera avrà sempre un codice di accesso.

CharCode

valore CharCode è disponibile sul keypress.Majority delle chiavi avrà le charCodes che rappresentano il valore effettivo. Ad alcune chiavi non è associato un codice identificativo. Per esempio. backspace, cancella, tasti freccia.

Sono corretto a dire che sulla pressione del tasto il codice di avviamento sarà lo stesso del codice di accesso?

ordine degli eventi

  • KeyDown
  • KeyPress
  • TastoSu

Questo ordine differisce da browser a browser? Ad esempio, ho due funzioni. Il primo è associato all'evento KeyDown, il secondo è associato all'evento KeyPress. Chiamare un evento KeyPress significa che verrà chiamato anche l'evento KeyDown, quando voglio che solo uno di questi eventi funzioni.

Infine ho preso in considerazione l'utilizzo di diverse routine di gestione delle chiavi in ​​base al browser versione. Per esempio:

  • versione del browser Verificare
  • ottenere la chiave routine di gestione a seconda della versione del browser

Questo introdurrà codice aggiuntivo, ma dovrebbe semplificare la manutenzione. Inoltre, in futuro, quando voglio fornire un supporto per un browser diverso, posso semplicemente aggiungere un'altra routine e questo non influirà sulla routine di gestione dei caratteri esistente.

Finora ho letto http://www.quirksmode.org

risposta

5

Il seguente articolo di Jan Wolter non mi ha mai deluso ed è di gran lunga la migliore risorsa sugli eventi chiave del browser Ho visto: http://unixpapa.com/js/key.html. Risponde a tutte le domande che hai posto.

Una cosa da sottolineare è che con l'uso attento delle proprietà dell'evento chiave a vostra disposizione avrete quasi certamente mai bisogno di annusare per un particolare browser nel codice di gestione delle chiavi.

+0

Bellissimo articolo, tiene ancora oggi ?? –

+0

@SurajJain: Sì, sebbene i browser moderni supportino proprietà nuove e migliori come ['chiave'] (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key). Dubito che le vecchie proprietà andranno via presto, anche se sono ufficialmente deprecate. –

0

Aggiornamento 2015:

According to MDNevent.charCode, event.keyCode e event.which sono stati tutti deprecato. event.key è il modo più recente e più caldo per verificare quale tasto è stato premuto.

Sembra facile da usare, ma il supporto del browser non è perfetto. Tutto ciò che abbiamo ora è un supporto parziale in Chrome 45+ (non ancora in circolazione AFAIK), Firefox 23+ e IE 9+.

+1

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