Combinazione di tasti di scelta rapida JavaScript

April 12

In alcune applicazioni Web, un singolo tasto o una combinazione di tasti attiva un'azione dall'applicazione. tasti di scelta rapida standard includono "Ctrl-X" per spostare il testo negli appunti, "Alt-F4" per chiudere una finestra e "Shift-F5" per forzare un aggiornamento completo della finestra. Rilevare la combinazione di tasti di scelta rapida che sono state premuto in JavaScript è più complicata di quanto ci si potrebbe aspettare. I primi requisiti del browser non includono dettagli come il valore da utilizzare in etichettare ogni tasto della tastiera, e diverse aziende utilizzati valori diversi per gli stessi tasti. Mentre è possibile seguire un approccio raccomandato per il controllo di tasti di scelta rapida che sono stati premuti, verificare i valori e la differenza di valori tra i browser web.

Tasti di scelta rapida

Un tasto di scelta rapida è una chiave che innesca qualche tipo di azione in un'applicazione quando viene premuto. Ad esempio, un gioco potrebbe utilizzare "z" e "c" come tasti di scelta rapida per ruotare un oggetto a destra ea sinistra. Alcune applicazioni utilizzano una combinazione di tasti combinando caratteri alfanumerici standard con altre chiavi speciali, per esempio, G "" e la freccia in su. Tre tasti speciali, "Ctrl", "alt" e "shift", sono spesso utilizzati con tasti di scelta rapida combinazione. Ad esempio, "Ctrl-S" è spesso usato come tasto di scelta rapida combinazione per "Salva". tasti di scelta rapida combinazione possono includere più di una chiave speciale, come in "Ctrl-Alt-P".

Keycode e charCode

Ogni carattere stampabile ha un codice ASCII numerico assegnato ad esso, chiamato charCode. Ogni tasto sulla tastiera ha anche un codice numerico assegnato chiamato un codice chiave. I due non sono sempre gli stessi. Ad esempio, la minuscola "a" e "A" maiuscola hanno diversi charCodes ma condividono lo stesso codice. I caratteri non stampabili, come le frecce su e giù non hanno un charCode a tutti.

Eventi della tastiera

In JavaScript, quando si preme un tasto, si innesca una serie di eventi. JavaScript imposta le proprietà di un oggetto evento per fornire informazioni sull'evento. Un evento "KeyDown" accade quando viene premuto un tasto e un evento "KeyUp" si attiva quando il tasto viene rilasciato. Mentre il tasto viene premuto, un evento di "pressione del tasto" è continuamente attivato. Nel corso di questo evento, la maggior parte dei browser forniscono il valore charCode del tasto premuto. Nel corso di un evento KeyDown o keyup, maggior parte dei browser impostare il valore del codice tasto della chiave che ha attivato l'evento. Per tutti e tre gli eventi, una proprietà aggiuntiva chiamata ", che" di solito è impostato sul valore Unicode del tasto premuto, tra cui tasti speciali. Maggior parte dei browser anche impostare tre flagss - ctrlKey, tasto Alt e shiftKey - che indica la chiave che si è tenuto premuto quando l'evento ha sparato.

differenze tra i browser

Selezionando l'evento e la proprietà da utilizzare per determinare la combinazione di tasti di scelta rapida JavaScript che sono stati premuti può essere una sfida. Purtroppo, non tutti i browser Web interpretano o implementano le specifiche del browser in modo identico. Di conseguenza, Chrome, Firefox, Internet Explorer, Opera e Safari non attivano gli stessi eventi o usano gli stessi keycode per ogni tasto. Ad esempio, Internet Explorer non fornisce la charCode, solo il codice chiave. Firefox offre solo il codice chiave durante pressione del tasto e fornisce la charCode per keydown e keyup. Il codice per il tasto colon è 59 in Firefox e 186 in Internet Explorer e Safari. La maggior parte delle differenze, tuttavia, esiste per le chiavi diverse da "a" a "z", "A" alla "Z", "0" a "9", "Ctrl", "Alt" e "Shift".

Determinazione Tasti di scelta rapida

Utilizzare una libreria esterna, come jQuery, Prototype, Dojo o MooTools quando è necessario tenere traccia di una combinazione di tasti di scelta rapida JavaScript che comprende i tasti speciali, perché queste librerie in genere gestire le conversioni tra browser e avere una proprietà oggetto singolo di riferimento. Per determinare la combinazione di tasti che ha attivato l'evento senza una biblioteca, utilizzare l'evento "pressione del tasto" e selezionare la casella ", che" la proprietà. Se questa proprietà è zero o non definito, controllare la proprietà "keycode". Confrontare questo valore al valore del tasto di scelta rapida, controllare le bandiere ctrlKey, tasto Alt e shiftKey, e determinare se la combinazione di tasti di scelta rapida JavaScript è stato premuto.