iframe自适应高度

最近一直在做一个比较简单的框架,遇到些iframe自适应高度的小问题。不多说,上代码

HTML代码

1 <div class="main">
2             <iframe id="iframecontent" frameborder="0" name="iframecontent" onload="iFrameHeight(this)"
3                 scrolling="no"  width="100%"></iframe>
4         </div>

JS

 1 //ifreme自适应高度
 2 function iFrameHeight(obj) {
 3     var ifm = obj;
 4     var subWeb = document.frames ? document.frames[ifm.id].document : ifm.contentDocument;
 5     if (ifm != null && subWeb != null) {
 6         if (document.all) {//IE
 7             ifm.height = subWeb.body.scrollHeight;
 8         }
 9         else {
10             ifm.height = subWeb.documentElement.offsetHeight;
11         }
12     }
13 }

以上代码在IE6789,Chrome19,FF14,safari5.1.5上是能够正常使用的。

但是在昨天发现safari5.0.5版本上发现高度不能正常获取。于是将代码稍作更改。

 1 //ifreme自适应高度
 2 function iFrameHeight(obj) {
 3     var ifm = obj;
 4     var subWeb = document.frames ? document.frames[ifm.id].document : ifm.contentDocument;
 5     if (ifm != null && subWeb != null) {
 6         if (document.all) {//IE
 7             ifm.height = subWeb.body.scrollHeight;
 8         }
 9         else if (window.openDatabase) {//Chrome OR Safari
10             ifm.height = subWeb.documentElement.scrollHeight;
11         }
12         else {
13             ifm.height = subWeb.documentElement.offsetHeight;
14         }
15     }
16 }

测试后能够正常使用。

posted @ 2012-06-21 09:21  蹩脚的舞步  阅读(231)  评论(0编辑  收藏  举报