2010-09-14 5 views
0

Il y a un bouton de chat, et lorsque les utilisateurs cliquent sur ce bouton de chat dans une nouvelle fenêtre sera ouverte et les deux utilisateurs peuvent discutercomment savoir si la fenêtre est ouverte - PHP/Javascript?

comment puis-je savoir, si la fenêtre de chat est toujours ouverte ou non, lorsque l'une des l'utilisateur s'est-il déconnecté de l'application?

et donner un message, "fenêtre de chat toujours ouvert" et fermez la fenêtre de chat ...

nom de la fenêtre de chat: chat<?=$user->username?> ...

Je suivi lorsque l'utilisateur se déconnecter , et d'autres tentatives d'envoyer un message .... alors je lui donne un message et fermer cette fenêtre

Code

pour ouvrir une fenêtre

win = window.open('../chat/index.php?user=<?=$uname->username?>','chatApp<?=$uname->username?>','width=400, height=500'); 

J'ai besoin de fermer la fenêtre de discussion lorsque les utilisateurs cliquent sur la déconnexion? ce code est-il exact?

echo "<script>win.close();</script>"; 
+0

comment fermer la fenêtre par php? –

+0

Vous ne pouvez pas fermer la fenêtre avec Php ou Php. Vous devez utiliser JavaScript pour cela, lécher un écouteur de clic sur le bouton de déconnexion qui ferme la fenêtre après X temps. – BGerrissen

+0

hmm, je n'ai pas compris ce que tu veux dire? lorsque les utilisateurs cliquent sur la déconnexion, je désactive les sessions et je vide les données ... –

Répondre

0

Tant que la fenêtre qui ouvre les fenêtres pop up ne pas se réinitialiser [fermé, rafraîchi, réaffectés] et tuer l'objet de fenêtre, vous pouvez faire quelque chose comme ce qui suit pour maintenir les fenêtres créées.

var winPop = {} 

    function openPop(username, url){ 
     if(winPop[username]){ 
      closePop(username); 
     } 
     winPop[username] = window.open(url); 
    } 

    function closePop(username){ 
     if(winPop[username] && !winPop[username].closed){ 
      winPop[username].close(); 
      winPop[username] = null; 
     } 
    } 

    function killAllPop(){ 
     for(var win in winPop){ 
      closePop(win); 
     } 
    } 

Si la fenêtre qui ouvre desserre l'objet fenêtre, vous êtes hors de la chance avec la fermeture des parents, sauf si vous faites le nettoyage sur onunload ou onbeforeunload.

+0

cela ne fonctionne pas? –