嵌套iframe跨域通信

时间:2009-07-17 09:18:01

标签: javascript iframe cross-domain

以下是两种情况: 大写为一个域,而小写为另一个域 1.假设窗口A保持iframe b,并且b保持iframe C,A& C在一个域(更高的隐私),而b在另一个域。 A& amp;之间有没有直接的沟通方式? C,单向或双向。 2.Appose A保持iframe b和iframe c,A在一个域中,而B& C在其他方面,与第一种情况中概述的问题相同。

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

2 个答案:

答案 0 :(得分:7)

如果他们故意合作。 HTML5包含用于此目的的postMessage API,并在IE8,FF3.5,Chrome,Opera中实现对于下层浏览器,可以使用称为Fragment Messaging的“hack”。如果您使用Flash,则可以使用Flash本地通信渠道。

答案 1 :(得分:3)

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

如果可能的话,您可以执行诸如将银行网站加载到填满整个窗口的框架中,并轮询它以查看用户是否在用户名和密码字段中键入任何内容。

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

  1. 加载页面时传递URL中的信息
  2. 对于使用<script>元素加载的信息,来自远程域的加载的JS文件中的任何代码都将在包含<script>元素的页面中运行。
  3. 您可以将两种方法结合起来:

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

    请参阅JSON-P