2

引言

对于iframe,可能大部人都没什么好感吧!在html5中iframe差不多已经废弃了,但有时候,人在江湖,身不由己啊。比如两公司项目合作,A公司(页面A)要把B公司页面(页面B)嵌套到它里面去,这个就可能会碰到跨域iframe的高度自适应问题。

同域

其实同域的情况下,我们是可以很轻松的做到高度自适应的,父页面可以通过iframe的
contentDocument或document属性访问到文档对象,进而可以取得页面的高度height,然后我们可以将此heihgt赋值给iframe tag。同样,子页面可以通过parent访问到父页面里面引入的iframe tag,然后给其设置高度。

跨域

但是对于上面说到的两公司项目合作的话,由于存在跨越问题,是不能直接通过js控制,我们只能通过一个中间页面来通信。
我们可以选择在页面B里面再嵌套一个页面A的同域页面C,这样页面C就能和页面A进行无障碍的通讯了;因为页面C嵌套页面B中,所以页面B就可以修改页面C的属性值。它们之前的关系结构如下图:
图片描述

大概原理清楚了,下面开始代码:

页面A

clipboard.png

页面B

clipboard.png

页面C

clipboard.png


harvey007
51 声望2 粉丝

引用和评论

0 条评论