合作页面之间的跨域、跨表通信
Cross-domain, cross-tab communication between co-operating pages
假设我有两个选项卡,每个选项卡都有一个加载到不同域上的网页。 两个选项卡中的页面想要通信。
我能看到的最简单的解决方案是这个(我对我在搜索重复项时发现的一个密切相关问题的回答),其中一个或两个页面加载一个中间页面 iFrame,该页面代理postMessage()
和localStorage
事件之间。 但是,这确实需要将此页面托管在某个位置,以及客户端的额外请求。
是否有任何技术不需要由其中一个域提供专门的"代理页面"? (也就是说,这可以由没有支持服务器的JavaScript库实现?
这个javascript库似乎提供了你正在寻找的功能(即,支持浏览器选项卡之间的跨源通信)。我还没有使用过这个,但会在我的应用程序中尝试这个。https://github.com/wingify/across-tabs 退房。
我可能选择创建一个后端 API 服务作为 2 个不同网站之间的公共通信隧道。
例如。
Site-A send a POST message to https://your-API-service
When Site-B asks for an update to https://your-API-service
Then API service returns the message previously sent from Site-A
如果您需要实时通信,您还可以使用 WebSockets 或推送通知
窗口。PostMessage API就是你要找的。
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
window.postMessage() 方法安全地启用 Window 对象之间的跨源通信;例如,在页面和它生成的弹出窗口之间,或者页面和嵌入其中的 iframe 之间。
- firefox插件和dev/panel之间的通信
- 如何在两个不同的iframe HTML之间进行通信
- Angularjs事件与发布/订阅指令之间的通信
- Firefox插件SDK:在侧边栏和主脚本之间通信对象
- Ember.js:接受的子组件和父组件之间通信的最佳实践
- 如何在Windows Phone 8.1应用程序中在C#和Javascript之间传递数据或通信
- 如何在Famo.us中的两个视图(不同的js文件)之间进行通信
- 在Jquery或Javascript中获取两个范围或日期之间的通信周数
- 如何在同源选项卡之间建立通信
- 如何在 PHP 和 JS 中的并发会话之间进行通信
- 如何在两个动画画布元素之间进行通信
- 在 HTML5 和 C# Web 套接字通信之间
- angularjs 中控制器和指令之间的通信
- 歌剧扩展脚本和它们之间的通信
- 如何使用js在两个aspx页面之间进行通信
- 多个应用程序之间的通信
- Chrome扩展:内容脚本和background.html之间的通信
- 如何在同一页面上的Angular应用程序和非Angular应用软件之间进行通信
- 反应.js:同一父母的两个孩子之间的通信
- 我的Javascript和PHP通信之间有什么问题,用于上传图像