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

234
Vistas
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 Respuestas
Responde la pregunta

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 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