iframe高度自适应,终于解决了

Posted WeiEnterprise

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iframe高度自适应,终于解决了相关的知识,希望对你有一定的参考价值。

一直被iframe的高度自适应的问题困扰着,在项目中也是多次遇到。网上也有不少相关的代码,但是总不能满足自己的要求。在头痛了几次之后终于下定决心解决这个问题。

本代码主要解决的问题是:最外层滚动条随着iframe高度动态变化的问题。如果iframe高度比较大最外层就会出现滚动条,否则就不会。网上好多例子的问题都是iframe只保留最大的高度以至于页面内容高度很小但是右边还有滚动条。

话不多说,上代码。

 1 /**
 2  * iframe自适应高度,height为手动设置的最小高度
 3  */
 4 function initIframeHeight(height){
 5     var userAgent = navigator.userAgent;
 6     var iframe = parent.document.getElementById("contentIframe");
 7     var subdoc = iframe.contentDocument || iframe.contentWindow.document;
 8     var subbody = subdoc.body;
 9     var realHeight;
10     //谷歌浏览器特殊处理
11     if(userAgent.indexOf("Chrome") > -1){
12         realHeight = subdoc.documentElement.scrollHeight;
13     }
14     else{
15         realHeight = subbody.scrollHeight;
16     }
17     if(realHeight < height){
18         $(iframe).height(height);
19     }
20     else{
21         $(iframe).height(realHeight);
22     }
23 }

亲测谷歌、火狐、ie8+通过。第一次发博文试试水 ^_^

 

以上是关于iframe高度自适应,终于解决了的主要内容,如果未能解决你的问题,请参考以下文章

iframe 里的高度适应的问题

iframe高度自适应(同域)

完美实现跨域Iframe高度自适应Iframe跨域高度自适应解决方案

真正解决iframe高度自适应问题

如何使iframe自适应内容的高度且不出现滚动条 问题解决后再加10分

解决各种情况下的iframe高度自适应内容