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 }
测试后能够正常使用。