Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

285
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!