【问题标题】:Nested iframe cross-domain communication嵌套 iframe 跨域通信
【发布时间】:2009-07-17 09:18:01
【问题描述】:

这里有两种情况: 大写作为一个域,而小写作为另一个域 1.假设窗口 A 保存 iframe b,b 在一个域中保存 iframe C、A 和 C(更高隐私),而 b 在另一个域中。 A&C之间有没有直接的通信方式,单向或双向。 2.假设A拥有iframe b和iframe c,A在一个域中而B&C在另一个域中,与第一种情况中概述的问题相同。

非常感谢您的回答,如果使用一些 javascript 代码会更好 谢谢

【问题讨论】:

    标签: javascript iframe cross-domain


    【解决方案1】:

    是的 如果他们有意合作。 HTML5为此目的包含postMessage API,它在IE8、FF3.5、Chrome、Opera等中实现. 对于低级浏览器,可以使用名为 Fragment Messaging 的“hack”。如果您使用 Flash,则可以使用 Flash Local 通信通道。

    【讨论】:

      【解决方案2】:

      。由于the same origin policy,不同域上的帧之间无法进行客户端通信。

      如果可能的话,您可以做一些事情,例如将银行网站加载到一个填充整个窗口的框架中,然后轮询它以查看用户是否在用户名和密码字段中输入了任何内容。

      如果您想在域之间进行通信,那么有两种方法。您需要发出 HTTP 请求才能实现其中任何一个。

      1. 加载页面时传递 URL 中的信息
      2. 对于使用 <script> 元素加载的信息,从远程域加载的 JS 文件中的任何代码都将在包含 <script> 元素的页面中运行。

      您可以将这两种方法结合起来:

      <script 
        type="text/javascript" 
        src="http://example.com/script.cgi?data=foo;more_data=bar">
      </script>
      

      JSON-P

      【讨论】:

      • 答案已过时,因为大多数主流浏览器都支持 postMessage API。
      猜你喜欢
      • 1970-01-01
      • 2014-09-14
      • 1970-01-01
      • 2019-02-03
      • 2013-02-11
      • 2016-02-02
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      相关资源
      最近更新 更多