页面域关系: 主页面a.html所属域A:www.jb51.net 被ifr a me的页面b.html所属域B:www.baidu.com,假设地址:http://www.baidu.com/b.html 实现效果: A域名下的页面a.html中通过ifr a me嵌入B域名下的页面b.html,由于b.html的宽度和高度是不可预知而且会变化的,所以需要a.html中的ifr a me自适应大小. 问题本质: js对跨域ifr a me访问问题,因为要控制a.html中ifr a me的高度
ifr a me跨域通信
查看演示 源码下载
众所周知,由于前端javascr ipt对跨域访问做了安全限制,javascr ipt只能访问与包含它的文档在同一域下的内容。
用法举例:
需求是在http://www.demo.org/top.html中通过ifr a me方式嵌入http://www.ifr a me.com/ifr a me.html,而在ifr a me页面中希望通过点击一个按钮,调用top页面的一个js方法。
1. 在top页面中建立方法供内部页面使用
获取同一个域的数据,可以通过XMLHTTP组件或ifr a me来实现,不存在跨域访问的权限问题,因此比较简单。 但如果要访问不同域的数据时,由于浏览器的安全设置,XMLHTTP没有权限获取数据,而ifr a me没有权限将获取的数据传递给父窗口,似乎没有其它解决办法。 顿悟…… 网页内引用不同域的脚本并不会提示权限不足,对了,就是它没错! 解决方法找到了,现在来简单测试一下: 首先在51js.com服务器上新建一页面(Test.html)。
Ove