iframe跨域通讯

工作中遇到一个问题,IFRAME嵌套了一个外部页面用于统计

统计的JS由我们提供,并且需要提供热点图

一开始就碰到的问题就是 不知道页面高度 需要子页面传回页面高度用于将IFRAME拉升到合适高度

当时设想的是由

统计JS 调用父框架进行设置值

但是浏览器直接报错显示安全问题不允许JS跨域执行

我就通过另外一种办法实现了跨域通讯

因为浏览器检查是否跨域是直接对比URL地址的

如果域一致就允许访问

我在统计JS中写入了

<iframe src=父框架执行JS地址" width=0 height=0/>

 

然后在父框架执行JS地址中写入脚本

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 </head>
 5 <body>
 6     <script>
 7         var parent = window.parent.parent.API;
 8         parent.setHeight(100);
 9     </script>
10     
11 </body>
12 </html>

然后将数据附加在地址上GET至这个页面

那么就可以跨域通讯了。。。。

 

如果大家有什么更好的办法请告知!

posted @ 2015-04-14 11:02  会写代码的熊猫  阅读(623)  评论(2编辑  收藏  举报