如何在窗口之间进行通信?

tem*_*ame 2 javascript jquery websocket

编辑:这个问题可以概括如下:在不同的窗口中,两个单独的html页面如何异步交换信息?


对于一个类项目,我必须构建一个基于Web的聊天客户端.教授提供了一个工作服务器.

我有一部分启动并运行 - 任何连接的用户都可以向服务器发送消息,它将被转发给所有连接的用户并出现在他们的主聊天窗口,聊天室风格.

但是,客户端还需要具有发送/接收私人消息的选项.如果发送或接收私人消息,则打开一个新窗口,显示仅与该用户通信的聊天界面.客户端向/从该用户发送/接收的任何未来私人消息将显示在此窗口而不是主聊天室中.

完全失去了.收到私人消息后,如何打开新窗口然后继续与该窗口通信?如果通过主窗口的websocket连接从该用户收到更多私人消息,则必须将它们发送到该窗口,如果从该窗口向其他用户发送消息,则必须通过主窗口的websocket连接中继消息.

如果可以完成,怎么办呢?

zzz*_*Bov 5

window.open返回window属于新打开窗口的实例.如果在新窗口中打开的地址可接受地属于同一原始策略,则可以修改它及其DOM,就像您可以修改当前活动窗口一样.

var w,
    someElement;
w = window.open('somepage.html', 'some window name', 'width=300,height=200');
someElement = w.document.getElementById('some-element-id');
Run Code Online (Sandbox Code Playgroud)