Tengo una aplicación Angular que abre un enlace a un sitio externo en una nueva pestaña cuando hago clic en un botón y luego verifica en un intervalo, si la pestaña está cerrada y cuando está cerrada hace cosas.
Esto funciona a veces, pero a veces esto no funciona. Cuando compruebo si la pestaña está cerrada con window.closed, a veces es cierto, aunque la pestaña no está cerrada.
Este problema apareció hace aproximadamente una semana o dos y no había ocurrido antes. No hice ningún cambio (la aplicación se ejecuta durante 2 meses en un servidor sin cambios de código ni nada). También probé una versión anterior de Chrome y otra PC y el problema sigue ahí.
El código se ve así
webUrl = "https://www.google.com" this.otherWindow = window.open(webUrl, 'otherWindowCtx'); const interval = setInterval(async () => { if (this.otherWindow.closed) { doStuff(); clearInterval(interval ); } }, 5000);La cuestión es que cuando webUrl es el enlace a Google (o casi cualquier otro sitio) funciona como se esperaba, pero cuando abro el sitio correcto que necesito abrir, no funciona. ¿Hay algo que un sitio pueda hacer para interferir de alguna manera? ¿O hay una forma alternativa de intentar abrir un sitio externo en una nueva ventana y verificar cuándo está cerrado?