日期:2014-05-16  浏览次数:20372 次

javascript 客户端如何实现 父子页面跨域消息互传
页面如下:
<body>
<iframe id="frame1" src="跨域/xx.html">
--内容--
</iframe>
</body>

我想实现父页面与子iframe中页面的消息相互通信

现在我已经实现了从父往子传消息:在父页面里改变iframe对应的hash,然后在子页面获取自己的hash就行了 
比如document.get..ById("frame1").src="跨域/xx.html"+"#message"

但是我现在想在子页面中用同样的方式想改变自己location 的hash值来实现子页面消息往父页面传,
比如我在子页面中写location.href="跨域/xx.html"+"#来自子页面的消息"
父页面中不能看到这个东西的变化(document.get..ById("frame1").src是不会变的),有人做过类似的需求的吗?
------解决方案--------------------
因为你的iframe放在父页,只要不操作iframe里面的内容,只操作iframe的属性,所以父可以传值给子

子的话一定要获取到父,只能用parent,跨域了调用parent就报错了,所以子控制不了父,如果你控制不了iframe加载的页面那就没搞了,如果可以控制,放置一个iframe作为代理,通过这个iframe来操作父页。

参考这个:iframe跨域,有AD,注意
------解决方案--------------------
http://aralejs.org/messenger/
去看看这个吧