您的位置:首页 > 其它

iframe高度自适应

2010-05-21 16:30 357 查看
迫不得已用iframe,于是和iframe奋斗了一天。


Example Source Code

<div class="side_left">
<iframe src="left.html" name="leftFrame" id="leftFrame" scrolling="No" width="170px" height="330px" frameborder="0"></iframe>
</div>

<div class="content">
<iframe src="right1.html" name="mainFrame" id="mainFrame" width="740px" frameborder="0" scrolling="no"></iframe>

</div>

典型的,左边菜单点击右边框架显示,先是链接明明指定了target,火狐下却在新窗口中打开。排查了很久,发现犯了个很低级错误没用</iframe>闭合。直接<iframe..../>。IE下没问题,FF不干了....
再就是右边框架随内容自动适应高度的问题。网上很多解决方案,大都转的这篇文章:http://blog.csdn.net/djt/archive/2008/06/05/2514028.aspx。代码:


Example Source Code

<iframe src="right1.html" name="mainFrame" id="mainFrame" width="740px" frameborder="0" scrolling="no"></iframe>
<script type="text/javascript">

function reinitIframe(){

var iframe = document.getElementById("mainFrame");

try{

var bHeight = iframe.contentWindow.document.body.scrollHeight;

var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;

var height = Math.max(bHeight, dHeight);

iframe.height = height;

}catch (ex){}

}

window.setInterval("reinitIframe()", 200);

</script>

但是测试发现,在火狐下,并不能收缩。需要刷新页面。
下面方法解决问题:


Example Source Code

<iframe id="mainFrame" name="mainFrame" width="100%" onload="this.height=mainFrame.document.body.scrollHeight" frameborder="0" src="index.htm"></iframe>

测试浏览器:IE6、IE7、IE8、FF3.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: