【发布时间】:2015-01-29 19:41:41
【问题描述】:
假设我有两个选项卡,每个选项卡都有一个加载到不同域的网页。两个选项卡中的页面想要交流。
我能看到的最简单的解决方案是this one(我在搜索重复项时发现的一个密切相关的问题的答案),其中一个或两个页面加载中间页面 iFrame, postMessage() 和 localStorage 事件之间的代理。但是,这确实需要将此页面托管在某个地方,并且需要客户端的额外请求。
是否有任何技术不需要专门的“代理页面”由其中一个域提供服务? (也就是说,这可以通过没有支持服务器的 JavaScript 库来实现?)
【问题讨论】:
-
不是重复的。这里的问题是关于跨域的。
-
为什么需要两个域?没有支持服务器? (不可能)
-
@btzr - 绝对不是不可能的!我实际上链接到问题中的一个解决方案,它根本不需要任何服务器端组件(所涉及的所有站点都可以是 100% 静态的,只使用客户端 JS)。但是,我链接的解决方案需要一个额外的 HTML 页面(在 iFrame 中加载)来充当代理,我想知道是否有更优雅的解决方案。
-
@cloudfeet 也许你可以在github.com/wingify/across-tabs 找到有用的东西——我不确定他们是如何实现它的,但它似乎是对这个挑战的一个非常深入的实现。
标签: javascript cross-domain local-storage postmessage