如何知道窗口是否打开 - PHP / Javascript?

时间:2010-09-14 10:47:39

标签: php javascript popup

有一个聊天按钮,当用户点击该聊天按钮时,将打开一个新窗口 并且两个用户都可以聊天

如果用户退出应用程序,我怎么知道聊天窗口是否仍然打开?

并发出消息,“聊天窗口仍然打开”并关闭聊天窗口...

聊天窗口的名称:chat<?=$user->username?> ...

我在跟踪用户注销时,其他人尝试发送消息....然后我给他一条消息并关闭该窗口

打开窗口的代码

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

我需要在用户点击退出时关闭聊天窗口? 这个代码是对的吗?

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

1 个答案:

答案 0 :(得分:0)

只要打开弹出窗口的窗口没有被重置[关闭,刷新,回发]并杀死窗口对象,您就可以执行以下操作来维护窗口。

  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);
      }
  }

如果打开窗口的窗口会丢失窗口对象,那么除非你在onunload或onbeforeunload上进行清理,否则你关闭它的父项是运气不好。