iframe自适应高度
有没有不用javascript的方法
谢谢

解决方案 »

  1.   

    function IframeHeight(iFrameid)
    {
        if (document.frames[iFrameid].closed == true)
        {
            return;
        }
        //    if(document.frames[iFrameid].docmument==null)
        //    {
        //        return ;
        //    }
        //解决用户同时打开多个,导致CreateIframe里面赋值为0
        //手工刷新框架里面的网页会为null,网页加载完了以后事件又被触发,这时才能取到值
        try
        {
            if (document.frames[iFrameid].document.body == null)
            {
                return;
            }
        }
        catch (err)
        {
            return;
        }
        var h;    if (GetBrowser() == "IE")
        {
            h = document.frames[iFrameid].document.body.scrollHeight + 20;
        }
        else
        {
            h = document.frames[iFrameid].document.body.clientHeight + 20;
        }    if (h < 520)
        {
            h = 520;
        }    //$(iFrameid).style.height = h;
        //$('TabPageContent').style.height = h;
    }
      

  2.   

    有两种方法:
    (1).1、建立一个bottom.js的文件,然后输入下面的代码(只有两行哦) parent.document.all("框架ID名").style.height=document.body.scrollHeight; parent.document.all("框架ID名").style.width=document.body.scrollWidth; 这里的 框架ID名 就是Iframe的ID,比如: <IFRAME id="框架ID名" name="left" frameBorder=0 scrolling=no src="XXX.aspx" width="100%"></IFRAME> 2、给你网站里所有的被包含文件里面每个都加入 <script language = "JavaScript" src = "bottom.js"/></script> 3、OK,收工! 我在WIN2003、IE6下面测试通过。很简单吧! 
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jxufewbt/archive/2006/05/24/752458.aspx
      

  3.   

    方法2:
    main.htm: <html>   
            <head>   
                  <meta     http-equiv= 'Content-Type '     content= 'text/html;     charset=gb2312 '   />   
                  <meta     name= 'author '     content= 'F.R.Huang(meizz梅花雪)//www.meizz.com '   />   
                  <title> iframe自适应加载的页面高度 </title>   
            </head>   
            
            <body> 
                    <div> <iframe   src= "child.htm "> </iframe> </div> 
            </body> 
    </html> child.htm: <html>   
    <head>   
            <meta     http-equiv= 'Content-Type '     content= 'text/html;     charset=gb2312 '   />   
            <meta     name= 'author '     content= 'F.R.Huang(meizz梅花雪)//www.meizz.com '   />   
            <title> iframe     自适应其加载的网页(多浏览器兼容) </title>   
            <script   type= "text/javascript "> 
            <!-- 
            function   iframeAutoFit() 
            { 
                    try 
                    { 
                            if(window!=parent) 
                            { 
                                    var   a   =   parent.document.getElementsByTagName( "IFRAME "); 
                                    for(var   i=0;   i <a.length;   i++)   //author:meizz 
                                    { 
                                            if(a[i].contentWindow==window) 
                                            { 
                                                    var   h1=0,   h2=0; 
                                                    a[i].parentNode.style.height   =   a[i].offsetHeight   + "px "; 
                                                    a[i].style.height   =   "10px "; 
                                                    if(document.documentElement&&document.documentElement.scrollHeight) 
                                                    { 
                                                            h1=document.documentElement.scrollHeight; 
                                                    } 
                                                    if(document.body)   h2=document.body.scrollHeight;                                                 var   h=Math.max(h1,   h2); 
                                                    if(document.all)   {h   +=   4;} 
                                                    if(window.opera)   {h   +=   1;} 
                                                    a[i].style.height   =   a[i].parentNode.style.height   =   h   + "px "; 
                                            } 
                                    } 
                            } 
                    } 
                    catch   (ex){} 
            } 
            if(window.attachEvent) 
            { 
                    window.attachEvent( "onload ",     iframeAutoFit); 
                    //window.attachEvent( "onresize ",     iframeAutoFit); 
            } 
            else   if(window.addEventListener) 
            { 
                    window.addEventListener( 'load ',     iframeAutoFit,     false); 
                    //window.addEventListener( 'resize ',     iframeAutoFit,     false); 
            } 
            //--> 
            </script>   
    </head>   
    <body> 
            <table   border= "1 "   width= "200 "   style= "height:   400px;   background-color:   yellow "> 
                    <tr> 
                            <td> iframe     自适应其加载的网页(多浏览器兼容,支持XHTML) </td> 
                    </tr> 
            </table> 
    </body>   
    </html>   很多人反应在IE7里使用它会死机,那是因为在自适应高度时触发了   window.onresize   事件,而这个事件又去调用这个调整   <iframe>   高度的函数,产生了死循环调用。 给你这一段代码!你看看!
      

  4.   

    给你一个,刚好今天做项目用到了<script type="text/javascript">
             function SetCwinHeight(){
              var mainid=document.getElementById("infoA"); 
              if (document.getElementById){
               if (mainid && !window.opera){
                    if (mainid.contentDocument && mainid.contentDocument.body.offsetHeight){
                     mainid.height = mainid.contentDocument.body.offsetHeight;
                    }else if(mainid.Document && mainid.Document.body.scrollHeight){
                     mainid.height = mainid.Document.body.scrollHeight+30;
                     
                    }
               }
              }
             }
    </script>