ifram高度自适应,获取iframe元素,控制父页面

 
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就不考虑啦,日后再说



你可能感兴趣的:(iframe)