2014-10-01 62 views
0

我是bulding聊天应用程序。打开聊天用户点击按钮并通过聊天功能打开iframe。在这个地方,我在主窗口中设置了cookie和user_id。在iframe中的聊天应用程序中,我使用回调函数检查cookie是否设置。如果设置了cookie,应用程序将通过user_id与用户开启新的聊天并删除co​​okie。它运作良好。如何在浏览器标签页/窗口之间进行通信?

但是,当用户打开2个和更多的选项卡,然后应用程序只在一个选项卡中打开聊天beacouse cookie在该选项卡中被删除。我可以延迟删除cookie,但我没有那样。

我该如何找到解决这个问题的方法?

+1

您能否给我们提供一些代码,以便我们可以更好地了解您的问题? – Azrael 2014-10-01 11:54:16

回答

3

HTML5 LocalStorage(及其相关事件,storage)对于来自同一个域的浏览器窗口之间的通信非常有用。但请注意,像IE和Chrome这样的浏览器会以不同的方式触发事件。特别是,Chrome只会触发事件,如果存储被另一个窗口更改,而IE将在每次更改时触发事件。

if (window.addEventListener) { 
    window.addEventListener("storage", handle_storage, false); 
} else { 
    window.attachEvent("onstorage", handle_storage); 
}; 

function handle_storage(e) { 
    if (!e) { e = window.event; } 
} 
相关问题