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

144
Visualizações
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 à 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