Cómo detectar Num Lock
document.addEventListener('keydown', (event) => {
if (event.key === "NumLock") {
// Num Lock was pressed
}
});
Usa event.key para reaccionar según lo que significa la tecla (depende de la distribución del teclado) y event.code para su posición física, por ejemplo WASD en juegos. keyCode e which están obsoletos: siguen funcionando, pero sus valores varían entre navegadores y distribuciones.
Cómo tratan los navegadores Num Lock
Con Num Lock desactivado, el teclado numérico envía teclas de navegación (Inicio, Fin, flechas) en lugar de dígitos. Consulta event.getModifierState("NumLock").
En React
<input onKeyDown={(e) => { if (e.key === "NumLock") { /* … */ } }} />Buscador de Keycodes JavaScript
Pulsa cualquier tecla y mira al instante todas las propiedades del evento de teclado, con un fragmento keydown listo para copiar para tus atajos.