ifram高度自适应,两种方法
方法一:父页面获取子页面高度,改变父页面高度
演示地址:http://i.thec.cn/jie51886/js/iframe/parent2.html以下代码加到父页面
<script language="javascript">
//获取iframe子页面的方法,需调用才能实现 (<body onload="doShow()">)
function doShow(){
//获得子页面的高度 document.getElementById("content").contentWindow.document.body.scrollHeight
document.getElementById("content").style.height = document.getElementById("content").contentWindow.document.body.scrollHeight + "px";
//改变iframe的高度
}
</script>
方法二:子页面直接改变父页面高度
演示地址:http://i.thec.cn/jie51886/js/iframe/parent1.html以下代码加到子页面
<script language="javascript">
//控制父页面iframe高度的方法
parent.document.getElementById("content").style.height = document.body.scrollHeight +"px";
</script>
为了公司网站的改版,也为了学ASP.NET,这几天花了N多时间在 vs2005/vs2008/asp.net 上面。
目标:母版页+菜单+iFrame的完美解决
http://www.yxsoft.net (还是旧内容,未上传)
--------------------
| 母版 title |
--------------------
| |
|index | iframe
|menu | 内容页
| |
-------------------
| 母版 footer |
-------------------
点击左面菜单/tree,通过设置tree的navi-url,在右面的iframe动态加载内容页面。
iframe 要按内容页面 自动适应 自动调节高度 。
母版,菜单 比较好解决。
iFrame高度自动调节,好象是个难题耶。
GOOGLE一下,方法一大堆,有点太复杂,都不大行。
vs2008的帮助又动不了,连看个iframe类模型都无办法,菜啊。
试了N回,下面简单代码可以了,asp.net 2.0条件下。
<iframe id="content" name="content" scrolling="no" frameborder="0" width="754px" height="50px" onload = "height = this.Document.body.scrollHeight + 30;" > </iframe>
注意事项
1、height设为auto不行的,一定要有一个值
2、this.document引用到是的 iframe所在页面对象,
this.Document (大写D),才能引用到iframe内含对象
这个方法可能更稳妥
onload = "height = document.frames(this.name).document.body.scrollHeight + 30"
3、Opera, firefox,这两LAJI就不考虑啦,日后再说