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

213
Vistas
¿Cómo cancelar el envío de un formulario sin evento de envío?

Estoy tratando de cancelar el envío de la página de inicio de sesión web de Microsoft ( https://login.microsoftonline.com ) usando extensiones de Chrome y principalmente javascript de vainilla.

Esta es la parte de content.js que es relevante (imagínese que el nombre de usuario se completó, actualizó la página de ingreso de contraseña después de recargar la extensión y ahora está haciendo clic en el botón de inicio de sesión):

 document.body.addEventListener('click', function(e){ form = document.querySelector('form') form.removeAttribute("data-bind"); form.setAttribute("onsubmit", "return false;"); }

La idea aquí es simplemente cancelar el envío del formulario, siempre que se haga clic en el botón de inicio de sesión.

Esto modificará efectivamente el DOM del formulario, al inspeccionar el formulario después de un clic (en cualquier parte de la página); sin embargo, al hacer clic en el botón de inicio de sesión, aún se activará el envío del formulario, enviando así la solicitud POST.

Después de muchas pruebas en direcciones separadas, llegué a la conclusión de que la solicitud de publicación real no se genera a través de un envío de formulario clásico, sino de un código personalizado que aún no he tenido tiempo de localizar.

Además, parece que el código JS del cliente de MS tiene prioridad sobre cualquier otra manipulación que mi código de extensión de Chrome intente insertar, por ejemplo, he intentado configurar todos los valores de entrada para que se vacíen justo al hacer clic en el inicio de sesión:

 document.body.addEventListener('click', function(e){ document.querySelectorAll("input").forEach( elem => {elem.value=""}); }

Mi mayor obstáculo en este momento es que quiero cancelar todos los eventos que están escuchando este botón de inicio de sesión, cada vez que se hace clic en él, e insertar mi propia lógica.

No sé si esto es técnicamente factible solo con vainilla, dado que el método principal para cancelar el envío de un formulario no parece funcionar aquí.

Por supuesto, si ve alguna otra dirección para cancelar el envío del formulario, me encantaría recibir cualquier idea que aún no haya pensado.

about 4 years ago · Juan Pablo Isaza
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