您的位置:首页 > 其它

多层嵌套iframe 自适应高度的解决方法

2009-06-06 10:47 337 查看
我在页面main.htm中包含框架<iframe id="main" name="main" src='t1.htm'></iframe>
其中,通过main.htm导航条,动态调整main iframe的内容。实现功能导航。
t1.htm中也包含框架<iframe id="t1" name="t1" src="t2.htm"></iframe>
其中,t1.htm主要为某个功能的操作按钮,通过某些操作生成结果在t1 iframe中
显示。
t2.htm中是高度很大的页面,不含其他的框架。

我想要在t1 iframe文挡内容发生变化的时候。能够动态改变t1.htm页面的高度。
同时也要刷新main.htm的main iframe的高度,使得所有的高度进行匹配。

网络上提供的解决方法,都是针对某个iframe 调整的,并不能满足我的需求。
自己摸索了一段时间,才得到解决,虽然解决方法任便不够优美,但可以拿出来。
大家一快学习。其实,原理都不难,难的是Javascript标准的支持不一致,而且调试
很不方便造成的。期间有一本书<<Javascript bible>>(<javascript圣经>),其中的
某些章节对我帮助很大,希望你也可以得到很多收获。

我的解决方法:
在t2.htm中(最好在<head></head>标签内)加入:
<script type="text/javascript">
function window.onload(){
//parent.document.getElementById("t1").height=document.body.scrollHeight;
//没有style也可以
parent.document.getElementById("t1").style.height=document.body.scrollHeight;
parent.document.getElementById("t1").style.width=document.body.scrollWidth;

parent.parent.document.getElementById("main").style.height=parent.document.body.scrollHeight;
parent.parent.document.getElementById("main").style.width=parent.document.body.scrollWidth;
}

在t1.htm中(最好在<head></head>标签内)加入:
<script type="text/javascript">
function window.onload(){

//parent.document.getElementById("main").height=document.body.scrollHeight;
//没有style也可以
parent.document.getElementById("main").style.height=document.body.scrollHeight;
parent.document.getElementById("main").style.width=document.body.scrollWidth;
}
</script>

这样在t2.htm被载入的时候,动态调整t1 iframe及 main iframe的高度。
在t1.htm被载入的时候,动态调整main iframe的高度。
从而实现了上述得到功能。(在IE6.0中测试)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: