Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

292
Visualizações
Cómo verificar si la tecla Escape se presionó 3 veces (como la seguridad del sitio web del proyecto Trevor)

He estado tratando de hacer un sitio web para personas que sienten que su vida está en peligro o algo por el estilo. Estoy tratando de recrear la función de tecla de escape del Proyecto Trevor con javascript.

Tengo un código base pero no funciona:

 window.addEventListener("keydown", checkKeyPressed, false); var escTime = 0; function checkKeyPressed(evt) { if (evt.keyCode === "27") { window.clearTimeout(); escTime++; window.setTimeout(function(){ escTime = 0; }, 1000); } if (escTime == 3) { window.location.replace("https://classroom.google.com/h"); escTime = 0; } }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Yo diría que estás bastante cerca, pero:

  1. Debe recordar el identificador de setTimeout para cancelarlo, porque debe dárselo a clearTimeout .

  2. keyCode está en desuso (aunque es poco probable que desaparezca realmente), mire la key y code en su lugar.

  3. No tiene sentido volver a asignar 0 a escTime , treplace` sale de la página de todos modos.

Así que tal vez:

 window.addEventListener("keydown", checkKeyPressed, false); let escapeTimerHandle = 0; let escapeCount = 0; function checkKeyPressed(evt) { if (evt.key === "Escape" || evt.key === "Esc") { clearTimeout(escapeTimerHandle); escapeCount++; if (escapeCount == 3) { window.location.replace("https://classroom.google.com/h"); } else { escapeTimerHandle = setTimeout(function(){ escapeCount = 0; }, 1000); } } }
about 4 years ago · Juan Pablo Isaza Relatório

0

Puede lograr esto usando un cierre :

 function createCheckKeyPressFunction() { let timeout; let escTime = 0; function checkKeyPressed(evt) { if (evt.key === "Escape") { console.log("Escape Detected"); window.clearTimeout(timeout); escTime += 1; timeout = window.setTimeout(()=> { escTime = 0; console.log("Escape count reset to zero, due to timeout."); }, 1000); } if (escTime === 3) { let url = "https://classroom.google.com/h"; console.log(url); window.location.replace(url); escTime = 0; } } return checkKeyPressed; } let checkKeyPressed = createCheckKeyPressFunction(); window.addEventListener("keydown", checkKeyPressed, false);
 <p>Click to give this embedded snippet focus, and then test by hitting the ESC key.</p>

Dado que el fragmento de código (arriba) está incrustado en esta página, asegúrese de hacer clic en él después de ejecutarlo (para enfocarlo) antes de probarlo con la Esc .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda