[关闭]
@xiaoyixy 2015-09-13T20:21:56.000000Z 字数 465 阅读 3181

iframe子页面与父页面跨域访问

js


iframe指向外部链接时,因为安全机制的存在,父子页面的访问机制也与同域访问不同,跨域访问可通过以下方法实现。

父页面向子页面传值
利用location对象的hash值,通过它传递通信数据——在父页面设置iframe的src,后面多加个#data字符串(data指向需要传递的数据),在子页面中通过某种方式即时获取data,常用的一种方式是:在子页面中通过setInterval方法设置定时器,监听location.href的变化即可获得上面的data信息,然后子页面就能根据这个data信息进行相应的逻辑处理。
子页面向父页面传值
利用一个代理IframeC,它嵌入到子页面中,并且和父页面保持是同域,然后我们通过它充分利用上面第一种通信方式的实现原理就能把子页面的数据传递给iframeC,iframeC和主页面是同域的,所以它们之间传递数据属于同域名下的通信问题,这里可以使用一个经常使用的属性window.top,返回对载入浏览器得最顶层window对象的引用,此法可直接调用父页面中方法。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注