onBeforeUnload neutralisé dans une fonction

Eléphant du PHP | 130 Messages

23 mars 2007, 17:20

Salut,

Je continue de me battre avec onbeforeunload, dans mon chat Ajax. :( .

La page de mon chat fonctionne sans rafraichissements grace a ajax. Sur cette page j'ai une fonction mesBoutons() dans laquelle j'ai été obligé de mettre la valeur de onbeforeunload à null. Le probleme que j'ai maintenant, c'est lorsque je ferme le navigateur pour appeler onbeforeunload afin de mettre a jour la liste des membres connectés au chat, celui ci ne répond pas si j'ai utilisé auparavant la fonction mesBoutons, et donc passé la valeur de onbeforeunload à null.
Par contre si j'appele onbeforeunload sans utiliser la fonction mesBoutons(), tout fonctionne. J'ai donc le code suivant :

Code : Tout sélectionner

<body onbeforeunload="javascript:maFonction()">

Code : Tout sélectionner

<script type="text/javascript"> function mesBoutons(){ window.onbeforeunload = null; // ici je neutralise onbeforeunload pour que la fonction marche. etc......... }</script> <script type="text/javascript"> function maFonction(){ window.onbeforeunload != null; // ici je tente d'annuler la neutralisation de onbeforeunload, mais ça ne marche pas. if(window.ActiveXObject){ xhr = new ActiveXObject("Microsoft.XMLHTTP"); etc........ }</script>
Je voudrais savoir s'il est possible d'utiliser mon code tel quel, et si oui, comment faire pour neutraliser onbeforeunload seulement dans la fonction mesBoutons() ? Merci à toutes les bonnes âmes. :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 mars 2007, 17:26

Pourquoi devoir désactiver onbeforeunload dans ta fonction ? qu'est ce qu'elle fait ta fonction ?

Ne peux tu pas redéfinir l'action à la fin de ta fonction ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 130 Messages

23 mars 2007, 17:33

Oui j'ai essayé de redéfinir l'action à la fin de la fonction mais ça ne fonctionne pas, j'ai pas encore trouvé d'astuce pour ça.

J'ai besoin d'utiliser onbeforeunload, comme je l'ai expliqué dans un autre sujet, que j'ai en parti résolu gràce à :
window.onbeforeunload = null;

http://www.phpfrance.com/forums/voir_sujet-28305.php

Tout cela est assez compliqué, car je tiens absolument à faire fonctionner le chat qu'avec des fichiers. Donc c'est un peu la galère. :lol: