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

228
Views
No se puede eliminar el detector de eventos keydown programáticamente

La combinación CTRL + e activada es bastante molesta, necesito eliminar el controlador de teclas.

Desde Chrome, el detector de eventos está en textarea:

ingrese la descripción de la imagen aquí

Así que creé un script y lo probé en devtools:

 Array.from(document.querySelectorAll("textarea")).forEach(e => { const ev = getEventListeners(e) if (ev['keydown']) { console.log(ev['keydown']) ev['keydown'].forEach((row) => { e.removeEventListener('keydown', row.listener, false) }) } })

Pero el detector de eventos todavía está allí, ¿qué estaba mal?

EDITAR

Como sugirió @wahoowa, esto funcionó parcialmente, CTRL + E ya no crea el acento grave en github.

Pero tampoco realiza la acción predeterminada en Mac. La acción predeterminada es saltar al final de la línea, ¿cómo puedo hacer el comportamiento predeterminado cuando se presiona CTRL + E ?

 document.querySelectorAll("textarea").forEach(e => { e.addEventListener("keydown", ev => { if (ev.key == 'e' && ev.ctrlKey) { ev.preventDefault(); ev.stopPropagation(); } }) })
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En lugar de eliminarlo, puede agregar un detector de eventos a todos textarea elementos de área de texto para evitar el comportamiento predeterminado y también detener la propagación del evento a los elementos principales.

 document.querySelectorAll("textarea").forEach(e => { e.addEventListener("keydown", ev => { ev.preventDefault(); ev.stopPropagation(); }) })

Tenga en cuenta que esta es la solución a su escenario, pero no responde a su pregunta inicial sobre cómo eliminar un detector de eventos. Si se agregaran otros detectores de eventos keydown a los elementos del área de textarea , no se eliminarían. Para eliminar realmente a los detectores de eventos, puede consultar estas otras preguntas:

  • Eliminar todos los detectores de eventos de un tipo específico
  • Javascript/DOM: ¿Cómo eliminar todos los detectores de eventos de un objeto DOM?
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!