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