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

231
Visualizações
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 Respostas
Responde à pergunta

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