zoukankan      html  css  js  c++  java
  • iframe高度根据内容变化

    我们在使用iframe的时候,iframe的高度并不会根据内容的多少来改变它的高度,如何让它根据内容来改变它的高度呢?在网上也找了好多代码,觉得下面这段代码是最有效的:

     1 var browserVersion = window.navigator.userAgent.toUpperCase();
     2     var isOpera = browserVersion.indexOf("OPERA") > -1 ? true : false;
     3     var isFireFox = browserVersion.indexOf("FIREFOX") > -1 ? true : false;
     4     var isChrome = browserVersion.indexOf("CHROME") > -1 ? true : false;
     5     var isSafari = browserVersion.indexOf("SAFARI") > -1 ? true : false;
     6     var isIE = (!!window.ActiveXObject || "ActiveXObject" in window);
     7     var isIE9More = (! -[1, ] == false);
     8 
     9 
    10     function reinitIframe(iframeId, minHeight) {
    11         try {
    12             var iframe = document.getElementById(iframeId);
    13             var bHeight = 0;
    14             if (isChrome == false && isSafari == false)
    15                 bHeight = iframe.contentWindow.document.body.scrollHeight;
    16 
    17             var dHeight = 0;
    18             if (isFireFox == true)
    19                 dHeight = iframe.contentWindow.document.documentElement.offsetHeight + 2;
    20             else if (isIE == false && isOpera == false)
    21                 dHeight = iframe.contentWindow.document.documentElement.scrollHeight;
    22             else if (isIE == true && isIE9More) {//ie9+
    23                 var heightDeviation = bHeight - eval("window.IE9MoreRealHeight" + iframeId);
    24                 if (heightDeviation == 0) {
    25                     bHeight += 3;
    26                 } else if (heightDeviation != 3) {
    27                     eval("window.IE9MoreRealHeight" + iframeId + "=" + bHeight);
    28                     bHeight += 3;
    29                 }
    30             }
    31             else//ie[6-8]、OPERA
    32                 bHeight += 3;
    33 
    34             var height = Math.max(bHeight, dHeight);
    35             if (height < minHeight) height = minHeight;
    36             iframe.style.height = height + "px";
    37         } catch (ex) { }
    38     }
    39     function startInit(iframeId, minHeight) {
    40         eval("window.IE9MoreRealHeight" + iframeId + "=0");
    41         window.setInterval("reinitIframe('" + iframeId + "'," + minHeight + ")", 100);
    42     }
    43     var minHeight = $(window).height();
    44     startInit('mainframe', minHeight);

    html的源代码如下,index.html是你要引用的页面:

    1 <iframe src="index.htm" width="100%" height="100%" frameborder="0" name="mainframe" id="mainframe" scrolling="no"></iframe>

    Save

    Save

  • 相关阅读:
    字典树(Trie)的学习笔记
    kmp学习笔记
    NOIP PJ游记
    Hash学习笔记
    神奇的差分法(内附树状数组的一点扩展)
    DLX算法一览
    A*与IDA*的奇妙之旅
    HDU_2553——n皇后问题,作弊
    HDU_2035——求A^B的最后三位数
    HDU_2034——集合A-B
  • 原文地址:https://www.cnblogs.com/sese/p/5964457.html
Copyright © 2011-2022 走看看