Je souhaite déclencher un événement lorsqu'une fenêtre contextuelle est fermée, ou de préférence juste avant la fermeture. Je stocke l'objet de la fenêtre contextuelle en tant qu'objet, mais je ne connais aucun moyen de lier l'événement close ou un événement juste avant la fermeture de la fenêtre.Comment est-ce que je soulèverais un événement (jQuery ou vanilla Javascript) quand une fenêtre de popup est fermée?
var popupWindow = window.open("/popup.aspx", "popupWindow", "height=550,width=780");
Y at-il un moyen de s'abonner à l'événement close en utilisant jQuery, ou juste javascript brut? J'utilise jQuery et je ne peux pas ajouter une autre bibliothèque, donc si cela ne peut pas être fait dans jQuery, je vais devoir lancer mon propre système d'événements pour qu'il fonctionne dans tous les navigateurs.
MISE À JOUR:
J'ai essayé d'utiliser l'événement unload dans jQuery et pour une raison quelconque l'événement est déclenché dès que mon pop-up ouvre au lieu de quand il est fermé. Si j'utilise Firebug pour définir un point d'arrêt pour retarder l'abonnement à l'événement de déchargement, l'événement unload fonctionne comme prévu, mais pour une raison quelconque, il ne fonctionne pas correctement lorsque le javascript est autorisé à s'exécuter naturellement.
var popupWindow = window.open("/popup.aspx", "popupWindow", "height=550,width=780");
$(popupWindow.window).unload(function() { alert('hello'); });
Quelqu'un a-t-il une idée de la raison pour laquelle l'événement de déchargement pourrait être déclenché lors du chargement de la fenêtre?
Un autre hic est que je l'ai remarqué que l'événement « unload » jQuery ne reste pas souscrit à la fenêtre comme il le fait normalement si je fais juste:
popupWindow.onunload = function(){alert('hello')};
Il semble se désabonner de l'événement tous les le temps il est levé. Est-ce censé se produire? S'il n'y avait pas ce bug (ou fonctionnalité?) Dans jQuery, il serait très bien que l'événement soit levé sur load puisque je peux vérifier la propriété popupWindow.closed
à l'intérieur de l'événement pour m'assurer que la fenêtre était vraiment fermée.
Grand, ce a résolu mon problème;) –