iframe高度自适应

为了让iframe的高度对内容自适应,给iframe标签设置一个onload事件,具体代码如下:

<div class="middle-section">

        <iframe id = "test" class="sticky-header" src="" name="index" frameborder="0"         width="100%" style="background-color: #fff" onload="this.height=100;"></iframe >

</div>

js代码:

    //iframe高度自适应(被撑大后,根据内容缩小)

    function reinitIframe(){

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

        try{

            var bHeight = iframe.contentWindow.document.body.scrollHeight;//取iframe中body的高度

            //var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;//取文档高度,包括滚动条内容

var dHeight = 500;-- 当iframe被撑大之后,使用document.documentElement.scrollHeight获取到的文档高度,就大于body(内容)的高度,然后使用 Math.max(bHeight, dHeight)来设置当前iframe的高度时,使用的都是较大值那个,所以,将dHeight设置为固定值即可。

            var height = Math.max(bHeight, dHeight);//取body和文档中较大值为iframe高度

            iframe.height = height;

            console.log("bHeight",bHeight);

            console.log("dHeight",dHeight);

            console.log(height);

        }catch (ex){}

    }

    //定时器,每隔200毫秒,更新一次iframe的高度

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


ps : 若iframe高度自适应后,页面底部存在空白区域,只要将main-content的min-height值改小一点即可。

例如:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容