Hice un acceso directo en mi sitio web
alt + 1 = something() alt + 2 = something() shift + 1 = something() ... window.addEventListner("keydown",(e) => { if(e.key === 1 && e.alt) doSomething(); }) ¡Pero el problema es que cuando presiono shift+1 se convierte en shift + ! ¡La clave se convierte en un personaje especial! Y alt(opción) + 1 es ¡
¿Debo hacer un Key Map para cada carácter especial? ¿O hay otra manera buena?
Puede usar la propiedad de code y buscar la cadena "Digit1" . Ese es el propósito del code , darle un nombre de clave que no se vea afectado por las teclas modificadoras.
Aquí hay una demostración de la diferencia:
window.addEventListener("keydown",(e) => { console.log(`key = ${e.key}, code = ${e.code}`); }); Click here, then press 1, and then press !.Entonces, por ejemplo:
if (e.altKey && e.code === "Digit1") { // ... } (Tenga en cuenta que es altKey , no alt , para ver si la tecla Alt está presionada).