Bonjour,
Je me sers de Ajax pour faire fonctionner un chat. La page du chat fait appel a 2 fonctions, l'une qui affiche les messages, et l'autre qui deconnecte l'utilisateur.
Pour cette deuxième fonction, j'utilise onbeforeunload, ce qui va déconnecter l'utilisateur et mettre a jour la liste des connectés. Tout fonctionnait parfaitement bien, jusqu'a ce que j'introduise dans le script PHP qui gere les connexions, UNLINK pour effacer les fichiers lorsque le dernier utilisateur quitte le chat.
Le problème que je rencontre à présent est le suivant. Lorsque l'utilisateur envoit un message, l'évenement onbeforeunload se déclenche et détruit les fichiers du chat, ce qui efface tous les messages et la liste des connectés. Cela ne devrait absolument pas se produire, puisque la page ne se recharge pas, et que les deux fonctions n'ont rien avoir l'une avec l'autre.
Celle des messages est appelée grace à un formulaire classique, et celle qui gere les connexions grace a body onbeforeunload().
Cela fait 4 jours que je cherche une solution j'ai essayé plein de trucs rien ne marche. J'ai un peu progressé dernièrement et maintenant j'arrive a taper un message sans que onbeforeunload se lance, mais des que je tape un second message onbeforeunload se déclenche.
<script type="text/javascript">
window.onbeforeunload = confirmExit;
funtion confirmExit(){
var evt = window.Event;
if(evt){
window.onbeforeunload = function(evt){
return closeChat(evt);
}
}
else{
window.onbeforeunload = function(){
return closeChat(evt);
}
}
function closeChat(){
//appel du script deco.php
}
}
function displayMessages(){
//appel du script qui enregistre les messages
}
</script>
<body onbeforeunload="closeChat()">
<form action="javascript:displayMessages()" method="post" name="mess">
<input type="image" src="images/envoi.gif" name="mess"></form>
Merci pour vôtre aide.![]()
Partager