2011-11-23 2 views
0

Je souhaite enregistrer un événement de déchargement pour l'exécuter ultérieurement. Par exemple:jQuery: Enregistrer les événements de déchargement pour une utilisation ultérieure

// on unload do nothing but safe the event 
jQuery(window).unload(function() { 
      // TODO safe the unload event here somehow 
      // unloadEvent = this; 
      return false; 
}); 

plus tard, un autre morceau de code doit être en mesure d'effectuer l'événement précédemment enregistré, par exemple comme ceci:

function finallyUnload() { 
     // TODO 
     // unloadEvent.perform(); 
} 

Est-il possible de le faire?

Mise à jour

Ma fenêtre du navigateur communique avec une application Java Sélénium et doit attendre jusqu'à ce qu'il reçoive les informations sur l'événement unload et comment il est arrivé. Lorsque c'est le cas, l'événement unload peut être exécuté. J'ai compris que les événements de déchargement ne peuvent pas être retardés ou stoppés, alors j'ai eu une autre idée. Qu'en est-il de l'interception de tous les clics sur les liens avec href et les boutons, ainsi que des soumissions de formulaires. Ensuite, je fixe manuellement window.location à l'URL désirée ou soumettre le formulaire. Cela pourrait-il fonctionner?

+0

'Je veux enregistrer un événement unload pour l'exécuter plus tard on'. Pourriez-vous s'il vous plaît définir «plus tard»? Il n'y a pas beaucoup de javascript s'exécutant sur votre page après l'événement 'unload'. Eh bien, en fait, il pourrait y avoir, mais pas sur la même page que l'utilisateur le quitte. –

+0

Vous ne pouvez pas annuler un événement 'unload', point. – SLaks

+0

@Darin: la fenêtre de mon navigateur communique avec une application Java Selenium et doit attendre d'avoir reçu les informations sur l'événement de déchargement et comment cela s'est passé. Lorsque c'est le cas, l'événement unload peut être exécuté. – Alp

Répondre

0

J'ai trouvé une solution de contournement. J'intercepte tous les événements click et submit et les enregistre pour une utilisation ultérieure après que mon application a extrait les données d'événement nécessaires.

Mais cela ne fonctionne pas dans tous les cas: Intercept JavaScript unload events

Questions connexes