iframe高度自适应

三月 2, 2010 by zeze · Leave a Comment   

框架在页面中应用比较平常,好处就是用起来比较方便,需要的效果也还可以,不过也有不好的弊端,不利于优化,高度的问题, 这里介绍iframe框架怎么自动适应高度:

                <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不行了。再就是右边框架随内容自动适应高度的问题。

网上找了很多文章,常见的如:

                    <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>

但是测试发现,在火狐下,并不能收缩。需要刷新页面。
下面方法解决问题:
<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

转自:365css

来源:iframe高度自适应

框架在页面中应用比较平常,好处就是用起来比较方便,需要的效果也还可以,不过也有不好的弊端,不利于优化,高度的问题, 这里介绍iframe框架怎么自动适应高度:

<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不行了。再就是右边框架随内容自动适应高度的问题。

网上找了很多文章,常见的如:

<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>

但是测试发现,在火狐下,并不能收缩。需要刷新页面。
下面方法解决问题:
<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

相关文章


About zeze

发布评论