使用javascript检测新窗口是否打开

使用javascript检测新窗口是否打开,javascript,jquery,Javascript,Jquery,创建一个小型聊天应用程序,用户可以通过单击用户配置文件旁边的聊天按钮开始聊天 一旦有人点击聊天按钮,就会出现一个弹出窗口。现在我想动态地检测这个popus是否仍然处于打开或关闭状态 如果弹出窗口打开=在通知中显示新消息警报 如果弹出窗口关闭=通知中不提示新消息(因为聊天窗口已打开) 这就是我所尝试的: <a href="#" onclick="popitup("http://domain.com/chat/2")">Chat with user 2</a>

创建一个小型聊天应用程序,用户可以通过单击用户配置文件旁边的聊天按钮开始聊天

一旦有人点击聊天按钮,就会出现一个弹出窗口。现在我想动态地检测这个popus是否仍然处于打开或关闭状态

如果弹出窗口打开=在通知中显示新消息警报

如果弹出窗口关闭=通知中不提示新消息(因为聊天窗口已打开)

这就是我所尝试的:

    <a href="#" onclick="popitup("http://domain.com/chat/2")">Chat with user 2</a>
    <a href="#" onclick="popitup("http://domain.com/chat/1")">Chat with user 1</a>
有了这段代码,我总是能

alert('now window is closed show alerts');

chkAlerts
将始终显示警报,因为
newwindow
的初始值为
null

假设您只希望在聊天窗口关闭后收到警报,调整逻辑以忽略初始的
null
状态

function chkAlerts(){
    if ((newwindow != null) && (newwindow.closed)) {
        //Do something
        alert('now window is closed show alerts');
    }
}​

您的错误不在javascript代码中,而是在锚点中,您正在关闭函数调用中的双引号,它们必须如下所示:

<a href="#" onclick="popitup('http://domain.com/chat/2')">Chat with user 2</a>

但是,正如您所看到的,您只存储最后打开的窗口,如果您感兴趣的是知道这两个窗口都已打开,那么您应该创建一个数组形式的newwindow


干杯,

继续评论:


正如您所知,当重新加载或导航离开 窗口开启器页面,对newwindow的引用将丢失


是的,简,这才是真正的问题,你认为有什么问题吗 函数在javascript中执行此操作。。。还是我需要和你一起玩 会议还是什么

在会话或任何其他服务器魔法中都不可能

如果您真的需要跟踪聊天窗口,您可以选择将聊天包含在“开场白”页面上,并使其成为内联AJAX聊天


您可以在所有页面上安装一个AJAX侦听器,并在站点所有打开的选项卡/窗口上“打开”该聊天窗口,这样用户就不会忘记它。

正如您所知,当重新加载或从窗口打开器页面导航时,对
新窗口的引用将丢失。是的,jan,这是实际问题,你认为javascript中有什么函数可以做到这一点吗。。。或者我需要玩游戏或其他什么?