Cerca codici tasto JavaScript

Premi qualsiasi tasto della tua tastiera per vedere le sue proprietà di evento JavaScript.

Premi un tasto…

30 anni di storia degli eventi tastiera in JavaScript

Nessun tasto premuto per ora

Come funziona

  1. Premi un tasto: clicca nell'area di input e premi qualsiasi tasto, lettere, cifre, tasti funzione, frecce, modificatori o tasti speciali.
  2. Leggi i codici dei tasti: lo strumento mostra all'istante i valori event.key, event.code, event.keyCode (legacy) e charCode del tasto.
  3. Usa nel tuo codice: copia i valori esatti necessari per i tuoi listener di eventi tastiera o le tue implementazioni di scorciatoie.

Perché usare il rilevatore di keycode?

Gli eventi tastiera JavaScript espongono diverse proprietà, key, code, keyCode, charCode e which, e sapere quale usare e a quale valore confrontare è sistematicamente delicato. Il rilevatore di KeyCode elimina le supposizioni permettendoti di premere un tasto e vedere subito tutte le sue proprietà di evento. Prezioso per costruire scorciatoie da tastiera, gestire tasti speciali, implementare hotkey ed eseguire il debug dei listener di eventi tastiera.

Funzionalità

Domande frequenti

Qual è la differenza tra event.key ed event.keyCode?

event.key è lo standard moderno, restituisce una stringa leggibile come «ArrowLeft» o «Enter». event.keyCode è un codice numerico legacy (deprecato ma ancora supportato). Usa event.key per nuovo codice; event.keyCode per mantenere la compatibilità con i browser più vecchi.

Come rilevare Ctrl+S o altre combinazioni di tasti?

Le combinazioni da tastiera usano event.key combinato a verifiche di modificatori: if (event.ctrlKey && event.key === "s"). Premi Ctrl+S in questo strumento per vedere tutti i valori, poi riproduci la stessa condizione nel tuo listener di evento.

Perché alcuni tasti mostrano lo stesso keyCode?

I valori keyCode non sono stati standardizzati e alcuni tasti condividono codici a seconda del contesto. event.code è più affidabile, identifica la posizione fisica del tasto (per es. «KeyA») indipendentemente dal layout della tastiera, mentre event.key riflette il carattere prodotto da quel tasto.

30 anni di storia degli eventi tastiera in JavaScript

Gli eventi tastiera hanno una storia notoriamente caotica nel DOM. Netscape Navigator 2 (1995) ha introdotto i gestori originali onkeydown, onkeypress e onkeyup con una proprietà numerica keyCode, che non aveva specifiche; i browser hanno inventato ciascuno i propri valori. Internet Explorer 4 (1997) ha implementato la propria variante con event.keyCode come unica proprietà, mentre Netscape è rimasta con event.which. DOM Level 2 Events (W3C, novembre 2000) ha standardizzato il flusso degli eventi (cattura/bolla) ma ha esplicitamente messo da parte gli eventi tastiera perché i fornitori non riuscivano ad accordarsi. Il risultato: gli sviluppatori hanno scritto codice come e.keyCode || e.which per oltre un decennio. DOM Level 3 Events (W3C Working Draft 2003, Raccomandazione 2018) ha finalmente introdotto il moderno event.key (carattere Unicode o tasto nominato come «ArrowLeft») e event.code (posizione fisica del tasto come «KeyA», indipendente dal layout), insieme alla deprecazione di keyCode, charCode e which. La specifica UI Events (W3C, in corso) è la casa moderna di questo lavoro. I browser hanno recuperato gradualmente: Chrome 51 (maggio 2016), Firefox 47 (giugno 2016), Safari 10.1 (marzo 2017) hanno tutti spedito il supporto per event.code. L'evento legacy keypress è deprecato a favore degli eventi beforeinput e input.

Le 5 proprietà, decodificate

Dove la ricerca di keycode conta davvero

Errori comuni nella gestione degli eventi tastiera

Altre domande frequenti

Perché il mio gestore tasti non si attiva quando l'utente ha una tastiera non-US?

Quasi sempre perché stai controllando event.key per un carattere che esiste solo con Shift su quel layout. Su una tastiera tedesca QWERTZ, «/» è Shift+7 (non un proprio tasto); su AZERTY francese, le cifre 0-9 sono digitate con Shift+la-riga-sopra. Usa event.code (tasto fisico) per scorciatoie basate sulla posizione, o event.key per scorciatoie basate sul contenuto (dove vuoi davvero il carattere che l'utente ha appena digitato).

Come gestisco Cmd+K / Ctrl+K in modo coerente tra piattaforme?

L'idioma standard: if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "k") { e.preventDefault(); openPalette(); }. Su macOS, e.metaKey è il tasto Cmd; su Windows/Linux, e.ctrlKey è ciò che gli utenti si aspettano. Accetta entrambi. Sempre preventDefault perché il browser lega Cmd+K a «metti a fuoco barra indirizzi» in alcuni browser. Aggiungi !e.repeat per evitare l'attivazione su tasto premuto.

JavaScript può rilevare battiture globali al di fuori della pagina?

No, e questo è di design per sicurezza. Il browser attiva eventi tastiera solo per la pagina o elemento in focus. Le estensioni browser possono ascoltare con ambito più ampio usando l'API chrome.commands. Le app native in Electron, Tauri, ecc., possono usare hook globali a livello OS. Le app bancarie e 2FA dipendono da questa isolazione: una scheda dannosa non può keylogger il tuo gestore di password.

Qual è il modo giusto per rilevare «appena premuto» vs «in fase di pressione»?

Per i toggle, controlla !e.repeat nel gestore keydown, il primo evento ha repeat: false, gli eventi successivi di auto-ripetizione hanno repeat: true. Per azioni continue (movimento di gioco), traccia lo stato dei tasti in un Set: aggiungi su keydown, rimuovi su keyup, poi nel tuo ciclo di rendering controlla keysHeld.has("KeyW"). Questo disaccoppia l'input dal framerate e gestisce più tasti simultanei (movimento + salto).

Viene inviato qualcosa a un server quando premo i tasti qui?

No. Gli eventi tasto vengono catturati localmente da JavaScript e visualizzati su questa pagina senza alcuna richiesta di rete. Apri la scheda Network in DevTools, digita; vedrai zero traffico in uscita. Sicuro per testare in qualsiasi contesto, incluso scoprire cosa producono password o scorciatoie sensibili sulla tua tastiera.

Strumenti correlati