如何使用 postMessage 在顶级窗口之间共享数据

How can I use postMessage to share data between top level windows?

本文关键字:窗口 之间 共享 数据 何使用 postMessage      更新时间:2023-09-26

使用Web消息传递(postMessage),可以轻松地在窗口之间发送消息,包括通过Javascript打开的iframe和弹出窗口。但是,用户单独打开的两个窗口是否可以找到彼此并进行通信?

例如,如果用户在浏览器中打开 www.example.com/app.html,然后在同一浏览器的另一个选项卡/窗口中打开同一页面,我希望第二个窗口知道它应该充当第一个窗口的"子窗口"并通过postMessage交换事件流。如何检测另一个打开的窗口是否存在,以及如何获取可以与 postMessage 一起使用的句柄?

我不知道

postMessage是否可能.

但是,这应该可以通过localStoragesessionStorage(存在于会话范围内)来实现。

使用这种方法,您可以在一个窗口/选项卡中

写入一个值,然后在另一个窗口/选项卡中读取它,当然假设它们都在同一个域中。

在此处查看更多内容: http://php-html.net/tutorials/html5-local-storage-guide/

希望有帮助。