Je suis à la recherche d'un événement proche pour popup. J'ai trouvé un for XUL, mais j'en ai besoin pour HTML.La bonne façon de gérer la fermeture popup
La propriété Popup a la propriété closed
.
>>> var popup = open('http://example.com/', 'popup', 'height=400,width=500');
>>> popup.closed
false
Eh bien, je peux check it once at half second. J'ai testé sur Chrome 4.0.249.27, Opera 10.10, Safari 4.0.4 et Firefox 3.5.5. Tout fonctionne bien.
Mais setInterval me dérange. C'est moche. Existe-t-il une meilleure façon de le faire?
MISE À JOUR: J'utilise des fenêtres contextuelles pour la boîte de dialogue d'authentification (oAuth, en fait). Je veux envoyer des données à la fenêtre parente après la fermeture du popup (via postMessage).
Page intérieure d'un autre domaine. Par conséquent, je ne peux pas ajouter d'événement (unload
) à cause des restrictions de sécurité.
Je ne peux pas utiliser iframe en raison du script iframe buster. Donc, je ne peux pas utiliser de boîtes de dialogue modales jQuery fantaisie.
Je ne peux pas éditer quoi que ce soit inside popup.
Gah! J'ai vu le moyen de le faire juste l'autre jour! Dans la fenêtre nouvellement créée il y a une propriété, je pense une propriété de document qui vous permet de vous référer à la fenêtre d'origine qui a créé, et dire exécuter une fonction. Il fonctionne un peu comme popup.closed dans votre exemple, sauf l'inverse –
aha, trouvé - réponse ci-dessous. –