Javascript 如何知道用户是否在“我的网页”中打开了多个浏览器选项卡?

Javascript 如何知道用户是否在“我的网页”中打开了多个浏览器选项卡?,javascript,jquery,Javascript,Jquery,有没有办法只使用Javascript就知道这一点?我正在努力实现类似Gmail聊天连接用户列表的功能。如果用户有多个选项卡,然后关闭了一个选项卡,则关闭的选项卡不会影响用户的“已连接”状态,并且仍会在聊天列表中显示用户。您必须使用服务器端技术来获得跨浏览器体验,从而可以检测站点当前打开的窗口数量 基本上,您必须像gmail一样进行设置,并使用ajax技术来确定当前用户的活动/状态,并在数据库中进行更新。实现方式因您使用的技术而异。使用(psuedo-)随机名称/标识符onLoad、localSt

有没有办法只使用Javascript就知道这一点?我正在努力实现类似Gmail聊天连接用户列表的功能。如果用户有多个选项卡,然后关闭了一个选项卡,则关闭的选项卡不会影响用户的“已连接”状态,并且仍会在聊天列表中显示用户。

您必须使用服务器端技术来获得跨浏览器体验,从而可以检测站点当前打开的窗口数量


基本上,您必须像gmail一样进行设置,并使用ajax技术来确定当前用户的活动/状态,并在数据库中进行更新。实现方式因您使用的技术而异。

使用(psuedo-)随机名称/标识符onLoad、localStorage来保存已打开窗口的跨选项卡/跨窗口列表,并在卸载之前从列表中删除已关闭的窗口,这将允许您跟踪打开的窗口数量。onFocus/onBlur将允许您找出当前处于活动/非活动状态的窗口。

我想这可能是有可能的,在未设置窗口时,为每个窗口指定一个随机名称。。。也许有人可以提供一个实现。你需要这个做什么?也许有更好的方法来满足你的需要我怎样才能给窗户命名好的,我正在服务器端使用django(python)。问题是,当用户有多个浏览器选项卡时,我不知道如何更新状态。我知道我可以在javascript中使用beforeUnload,但当它打开多个选项卡时会发生什么您必须定期ping服务器以更新用户的状态。例如,在窗口设置超时后,每隔五秒钟ping一次服务器。如果窗口无法ping服务器,则表明它已关闭。BeforeUnload并不总是可靠的,但可以工作(例如ipad无法调用该事件)。