Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

169
Vistas
Cómo activar un evento cuando se presionan tres teclados al mismo tiempo en Javascript

Estoy escribiendo código para ejecutar una función específica cuando se presiona la tecla ctrl + shift + z . Cuando presiono dos teclas al mismo tiempo, funciona bien, pero cuando presiono tres teclas, el evento no ocurre. A continuación se muestra el código que escribí.

prueba 1:

 document.onkeydown = function (e) { if (e.ctrlKey && e.key === 'z') { // It works undo() // ctrl+ z } else if (e.ctrlKey && e.shiftKey && e.key==='z' ) { //It doesn't work redo(); //ctrl + shift + z } }

prueba 2:

 document.onkeydown = function (e) { // var ctrl, shift,z console.log(e.key) switch (e.key) { case 'Control': ctrl = true; break; case 'Shift': shift = true; break; case 'Z': z = true; break; } if (ctrl&&shift&&z) redo() }

Ninguno de estos funcionará si está escribiendo en tres teclados.

Cómo hacer que funcione cuando se presiona ctrl+shift+z

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Cambie el orden de las condiciones, ya que la primera condición siempre es true si la segunda es true , lo que hace que el código de la segunda condición nunca se ejecute.

 document.onkeydown = function(e) { if (e.ctrlKey && e.shiftKey && e.key === 'Z') { undo() } else if (e.ctrlKey && e.key === 'Z') { redo(); } }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Una buena manera de realizar un seguimiento de las teclas presionadas es con un objeto:

 const keys = {} function onKeyDown(e) { keys[e.key.toLowerCase()] = true doSomething() } function onKeyUp(e) { keys[e.key.toLowerCase()] = false } window.addEventListener('keydown', onKeyDown) window.addEventListener('keyup', onKeyUp) function doSomething() { console.log(keys) if (keys.control && keys.shift && keys.z) { console.log("redo!") } else if (keys.control && keys.z) { console.log("undo!") } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda