如何在浏览器标签之间共享数据?

时间:2012-06-04 17:50:26

标签: javascript javascript-events

我必须开发一个程序,我需要从服务器获取事件并想要更新网页。

e.g。我为聊天打开了多个浏览器选项卡,每个聊天页面都有自己的线程从服务器获取事件但是一旦聊天中的一个线程将获取事件而不是由于另一个聊天页面提取的其他获取空事件堆栈

所以,我的关注点是在不刷新页面的情况下与多个聊天页面共享活动。

2 个答案:

答案 0 :(得分:3)

听起来您可以使用postMessage让获取邮件的标签与您网域上的所有其他网页共享。

postMessage(JSON.stringify({chatmsg: someVarFromServer}), "http://www.mydomain.com");

让其他聊天页面监听message个事件:

window.addEventListener("message", receiveMessage, false);

function receiveMessage(event) {
    // reject foreign messages!
    if (event.origin !== "http://www.mydomain.com") return;

    var message = JSON.parse(event.data).chatmsg;

    // this other page now has the message
}

答案 1 :(得分:0)

如果你想开发一个用纯Javascript编写的实时聊天应用程序,我强烈推荐APE,这是实现这些目标的一个强有力的起点。
如果你不想使用框架这里有2个跨浏览器解决方案:

  • 定期发送AJAX请求检查事件
  • 使用第三方应用程序接收Flash的XML套接字等事件