Intereting Posts

JS: Écoutez quand la fenêtre enfant est fermée

J'ouvre la fenêtre enfant pour faire un partage de Facebook de cette manière:

window.open(sharingUrl,'','toolbar=0,status=0,width=626,height=436'); 

La fenêtre est automatiquement fermée lorsque l'utilisateur clique sur partager ou fermer … Existe-t-il un moyen d'ajouter des auditeurs à ces événements?

Si vous enregistrez une référence à la fenêtre enfant lorsque vous appelez window.open() , vous pouvez faire un sondage à l'aide de setInterval() pour voir si la fenêtre est encore ouverte à l'aide de la propriété window.closed . L'exemple ci-dessous vérifie deux fois par seconde.

 var child = window.open('http://google.com','','toolbar=0,status=0,width=626,height=436'); var timer = setInterval(checkChild, 500); function checkChild() { if (child.closed) { alert("Child window closed"); clearInterval(timer); } } 

Remarque pour les autres: Si vous rencontrez une situation où vous maîtrisez le html dans la fenêtre enfant, vous pouvez utiliser l'événement onbeforeunload et alerter la fenêtre parentale.

Pour les références futures, j'aimerais partager une autre solution qui ne nécessite pas setInterval :

 var child = window.open('http://google.com','','toolbar=0,status=0,width=626,height=436'); child.onunload = function(){ console.log('Child window closed'); }; 

Cela va bien fonctionner

  <html> <head> <title>Detecting browser close in IE</title> <script type="text/javascript"> window.onbeforeunload = function(){ myUnloadEvent(); } function myUnloadEvent() { alert ('You can have Ur Logic Here ,'); } </script> </head> </script> </head> <body > <h1>Close the Window now</h1> </body> </html>