Domanda

Sto lavorando sulla manipolazione chiave in Javascript. Ho fatto qualche ricerca e mi piacerebbe sapere se ho una corretta comprensione della gestione delle chiavi.

TastoGiù / KeyUp eventi Il premuto il tasto 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.

E 'corretto dire che ogni tasto sulla tastiera avrà sempre un codice chiave.

CharCode

valore CharCode è disponibile sul keypress.Majority delle chiavi avrà le charCodes che rappresentano il valore effettivo. Alcuni tasti non avranno un charcode ad essi associati. Per esempio. backspace, delete, i tasti freccia.

I Am corretto dire che sulla pressione dei tasti del charCode sarà lo stesso del codice chiave?

ordine degli eventi

  • KeyDown
  • KeyPress
  • TastoSu

Questo ordine differisce da browser a browser? Per esempio io ho due funzioni. In primo luogo è destinato a evento KeyDown, secondo è legato all'evento KeyPress. Chiamare un mezzo KeyPress che l'evento KeyDown sarà inoltre chiamata, quando voglio solo uno di questi eventi al lavoro.

Alla fine mi hanno preso in considerazione sull'utilizzo di diverse routine di gestione chiave a seconda della versione del browser. Ad esempio:

  • Versione verifica del browser
  • Ottieni routine di gestione chiave 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 altro di routine e non influenzerà esistente routine di gestione dei caratteri.

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

È stato utile?

Soluzione

Si vedano le pagine seguenti, che risponderà alle vostre quetions:

onkeydown evento, onkeypress evento, keyCode proprietà , charCode proprietà , quale proprietà

Altri suggerimenti

Il seguente articolo di Jan Wolter non mi ha mai fallito ed è di gran lunga il miglior risorsa su eventi chiave del browser che ho visto: http://unixpapa.com/js/key.html . Esso risponde a tutte le domande che ha posto.

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

Aggiornamento 2015:

Secondo MDN event.charCode, event.keyCode e event.which sono stati tutti deprecato. event.key è il modo più nuovo e più caldo per controllare quale tasto è stato premuto.

Sembra facile da usare, ma il supporto del browser non è perfetto. Tutto quello che abbiamo ora è il supporto parziale in Chrome 45+ (non fuori ancora per quanto ne so), Firefox e IE 23+ 9 +.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top