html5中文学习网

您的位置: 首页 > 网页制作 > html教程 » 正文

iframe 多层嵌套 无限嵌套 高度自适应的解决方案_HTML/Xhtml_网页制作

[ ] 已经帮助:人解决问题
点评:有A,B,C三个页面,A页面包含B页面,B页面包含C页面.A页面随着B页面自适应,C页面随着B页面自适应,具体实现如下,感兴趣的朋友可以参考下
有A,B,C三个页面,A页面包含B页面,B页面包含C页面.A页面随着B页面自适应,C页面随着B页面自适应 EC9HTML5中文学习网 - HTML5先行者学习网
A页面 EC9HTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
EC9HTML5中文学习网 - HTML5先行者学习网
<body> EC9HTML5中文学习网 - HTML5先行者学习网
<iframe id="main" name="main" width="980" scrolling="no" frameborder="0" src="B页面" EC9HTML5中文学习网 - HTML5先行者学习网
onload="this.height=main.document.body.scrollHeight;this.width=main.document.body.scrollWidth;if(this.height < 410){this.height=410;}"> EC9HTML5中文学习网 - HTML5先行者学习网
</iframe> EC9HTML5中文学习网 - HTML5先行者学习网
</body> EC9HTML5中文学习网 - HTML5先行者学习网
EC9HTML5中文学习网 - HTML5先行者学习网
B页面 EC9HTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
EC9HTML5中文学习网 - HTML5先行者学习网
<body> EC9HTML5中文学习网 - HTML5先行者学习网
<!--左边--> EC9HTML5中文学习网 - HTML5先行者学习网
<div style="flost:left;"> EC9HTML5中文学习网 - HTML5先行者学习网
左边菜单 EC9HTML5中文学习网 - HTML5先行者学习网
</div> EC9HTML5中文学习网 - HTML5先行者学习网
<!--右边--> EC9HTML5中文学习网 - HTML5先行者学习网
<div style="flost:right;"> EC9HTML5中文学习网 - HTML5先行者学习网
<iframe id="testIframe" name="testIframe" frameborder=0 style="width: 680px;" scrolling="no" src="C页面"></iframe> EC9HTML5中文学习网 - HTML5先行者学习网
</div> EC9HTML5中文学习网 - HTML5先行者学习网
</body> EC9HTML5中文学习网 - HTML5先行者学习网
EC9HTML5中文学习网 - HTML5先行者学习网
C页面 EC9HTML5中文学习网 - HTML5先行者学习网
将下面这个JS函数写到 最最底层的页面中(即最孙子的那个页面) 并在body的onload事件中调用该方法 【下面这个公式是万能公式】 EC9HTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
EC9HTML5中文学习网 - HTML5先行者学习网
<script type="text/javascript"> EC9HTML5中文学习网 - HTML5先行者学习网
//进行Iframe的自动撑开,让所有父页面的Iframe都自动适应包含页高度 EC9HTML5中文学习网 - HTML5先行者学习网
function autoHeight(){ EC9HTML5中文学习网 - HTML5先行者学习网
var doc = document, EC9HTML5中文学习网 - HTML5先行者学习网
p = window; EC9HTML5中文学习网 - HTML5先行者学习网
while(p = p.parent){ EC9HTML5中文学习网 - HTML5先行者学习网
var frames = p.frames, EC9HTML5中文学习网 - HTML5先行者学习网
frame, EC9HTML5中文学习网 - HTML5先行者学习网
i = 0; EC9HTML5中文学习网 - HTML5先行者学习网
while(frame = frames[i++]){ EC9HTML5中文学习网 - HTML5先行者学习网
if(frame.document == doc){ EC9HTML5中文学习网 - HTML5先行者学习网
frame.frameElement.style.height = doc.body.scrollHeight + 'px'; // 这里一定要注意 火狐必须要加'px‘ 否则火狐无效 EC9HTML5中文学习网 - HTML5先行者学习网
doc = p.document; EC9HTML5中文学习网 - HTML5先行者学习网
break; EC9HTML5中文学习网 - HTML5先行者学习网
} EC9HTML5中文学习网 - HTML5先行者学习网
} EC9HTML5中文学习网 - HTML5先行者学习网
if(p == top){ EC9HTML5中文学习网 - HTML5先行者学习网
break; EC9HTML5中文学习网 - HTML5先行者学习网
} EC9HTML5中文学习网 - HTML5先行者学习网
} EC9HTML5中文学习网 - HTML5先行者学习网
} EC9HTML5中文学习网 - HTML5先行者学习网
</script> EC9HTML5中文学习网 - HTML5先行者学习网
<body onload="autoHeight();"> EC9HTML5中文学习网 - HTML5先行者学习网
<!--经测试 这个最最最子的页面的body中必须要有一个有高度的div才行 否则上面的自适应生效--> EC9HTML5中文学习网 - HTML5先行者学习网
<div style="height: 1px;"> EC9HTML5中文学习网 - HTML5先行者学习网
</div> EC9HTML5中文学习网 - HTML5先行者学习网
<div style="padding-bottom: 10px;"> <!--这句话也是必不可少的--> EC9HTML5中文学习网 - HTML5先行者学习网
这里可以写真正的内容 并且给该div的padding-bottom设一个值 EC9HTML5中文学习网 - HTML5先行者学习网
</div> EC9HTML5中文学习网 - HTML5先行者学习网
</body> EC9HTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助