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

141
Vistas
No puedo cerrar una ventana emergente B desde una página A dentro del navegador webView

Traté de encontrar una solución aquí, pero no pude.

El problema es el siguiente:

  • Tengo una página A que abre una ventana emergente B que tiene alguna autenticación.
  • Después de la autenticación, la página A (la página window.opener) cierra la página emergente B cuando recibe todo hecho desde el backend.

Funciona bien, excepto cuando se abre desde el "navegador" webView desde la aplicación de Facebook o chatea en un teléfono.

Hasta ahora puedo ver que la limitación de webView es que solo puede tener una pestaña activa. Entonces, cuando la página A no está activa, su código javascript no se ejecuta y la ventana emergente no se cerrará.

Puede probar esto con este violín desde el navegador webView.

 let w = null; window.addEventListener("DOMContentLoaded", (event) => { document.querySelector("button").addEventListener("click", () => { w = window.open("https://www.google.com", "customPopup", popupFeatures); window.setTimeout(() => { if (w) { w.close() } alert('parent js is working'); }, 3000); }); }); const popupFeatures = "menubar=no,location=no,resizable=no,scrollbars=yes,status=no,width=700,height=700";
 <button>.......CLICK here....</button>

Algunas limitaciones que no puedo eludir:

  • La página B tiene que ser una ventana emergente porque Safari bloquea las cookies de terceros, por lo que no hay marco flotante en la página A.
  • La página/código emergente no tiene una opción de redirección y no tengo control sobre ella.
  • La página emergente tampoco usa postMessage u otro método de comunicación con otras páginas, obtengo todo hecho solo desde nuestro backend que lo solicita desde el suyo.
  • No puedo configurar la ventana emergente B con mi código porque poco después de abrirla, se redirige a otra página de terceros.

¿Hay alguna manera de mantener el código javascript en la página A para seguir ejecutando o poder cerrar la ventana emergente?

El problema principal es que después de que se abre la ventana emergente y el usuario finaliza con la autenticación, el flujo se atasca allí porque no puedo cerrarlo desde la página A porque su subproceso de javascript no está activo.

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