Sto creando un'app che prevede l'autenticazionetramite terze parti. Per evitare che il processo reindirizzi l'app effettiva, apro una nuova finestra che esegue l'autenticazione e ritorna alla finestra principale dopo il successo.
Tuttavia, ciò non va come previsto. Quando il popup reindirizza a terze parti e viceversa, window.opener
prende null
. È ancora possibile chiudere il popup vicino window.close()
ma devo anche aggiornare l'area di accesso nella finestra principale, in questo modo:
window.opener.check_auth_status();
Spero davvero che ci sia un modo per risolvere questo problema, ad es. associare una funzione per chiudere popup nella finestra principale? Aggiornare l'intera pagina sarebbe altamente inutile.
Un modo è quello di imposta un intervallo sulla finestra principale controllare se il popup è chiuso, ma sembra così complicato.
risposte:
9 per risposta № 1Hai alcune opzioni che potrebbero funzionare o meno nelle ultime versioni dei browser a causa di aggiornamenti di sicurezza
1) controlla che la finestra sia chiusa dall'apri - non in modo complicato e in realtà il più sicuro
2) dare un nome all'apri
window.name="myMainWindow";
e in popup (script dal dominio SAME) - normalmente non dovrebbe aprire una nuova finestra o cambiare contenuto
var handle = window.open("","myMainWindow");
handle.check_auth_status();
3) usa un iFrame nel popup e quando vuoi accedere all'apri, usa top.opener