高效iframe自动适应高度

亮术网 2013-03-20 本网原创

  由于W3C标准不支持iframe,所以前台页面基本不使用iframe,但后台由于要切换不同的页面,不用iframe不便实现,故还得使用。因为在一个iframe内要显示不同高度的页面,不同的页高度一般不相同,所以涉及到高度自适应问题。

  如果仅仅是在一个iframe内显示不同的页面,高度自适应还好解决,只要给iframe添加一个onload属性就可以实现,如下所示:

  <iframe id="right" name="right" onload="this.height=right.document.body.scrollHeight" width="100%" scrolling="no" frameborder="0" marginwidth="0" marginheight="0" src="index.html"></iframe>

  但如果被显示的页面中有相应的操作,如单击标题展开相应内容或上传图片后显示上传后的图片,此时页面的高度发生了变化,就需要重新调整,原来的onload="this.height=right.document.body.scrollHeight"无法实现,需要另外写一个函数来实现,代码如下所示:

    function reSetIframeHight() {
        var ifram = parent.document.getElementById('right');
        if(ifram.Document)
           ifram.style.height = document.body.scrollHeight;
        else
           ifram.style.height = document.body.scrollHeight + 'px';
    }

   
  页面高度发生变化后,只需调用 reSetIframeHight(),高度就会自适应,既方便也没不用常常去检查高度是否发生变化,所以不会无端的浪费资源,是一种高效的实现方式。

本文浓缩标签:高效iframe自动适应