iframe的高度自适应问题,加了下面这个,在safari里显示ok,正好是我要的效果,但是firefox就不行了,高度边成最小值了~
咋回事啊?有没有别的好办法? <iframe id="ifr" frameborder="0" scrolling=no onload="this.style.height = window.frames.ifr.document.documentElement.scrollHeight+'px'"  src="faq/s.html"></iframe>

解决方案 »

  1.   

    这个问题被很频繁的提及,IFRAME的CSS应该有个专门的属性被设计用于很方便地控制这一点才对.
      

  2.   

    iframe页面中的元素,不能使用float属性和display属性,否则在火狐中获取到的iframe高度将为0,导致自适应高度失败。
      

  3.   

    可是我的iframe页面里也没有用这两个属性啊~~
      

  4.   

    如果iframe内的页面可以操作的话,如下
    <script src="jquery-1.4.2.js"></script>
    <script>    function autoHeightIFrameNavigate(iframeId,url)
        {
            var iframe = $('#' + iframeId);
            iframe.attr('_name_',iframe.attr('name'))    //备份原来的 name
            .attr('src',url)                            //设置URL
            .one('load',function () {
                this.contentWindow.location = "about:blank";    //导向代理页面,我直接使用了这个
                $(this).one('load',function () {
                    var msg = this.contentWindow.name;            //得到值 这个值就是高度了
                    this.contentWindow.name = $(this).attr('_name_');    //恢复原来的 Name
                    this.contentWindow.location = url;            //再次导向目标页面
                    try
                    {
                        var height = eval(msg);                    //得到并设置高度
                       // alert(height);
                        iframe.css('height', height + 'px');
                   
                    }
                    catch(e)
                    {
                        //alert('目标页面没有设置高度到 window.name')
                    }
                   
                })
            
            
            })
        }  $(document).ready(function(){
    autoHeightIFrameNavigate('iframe_id','http://www.xxxx.com');
    $("#iframe_id").show();
    },1);
    </script>
    <style type="text/css">
    body{background:url("bg_main.jpg") repeat-y scroll center top transparent; text-align:center; }
    #iframe_id{display:none;}
    </style>
    <body><iframe id="iframe_id" frameborder="0" width="987" height="0" scrolling="no"></body>在www.xxxx.com 页面上设置 window.name=document.body.scrollHeight;
      

  5.   

    代码附上了,帮忙看看啊,谢谢了~safari浏览正常,火狐什么的就是不行郁闷了
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>FAQS </title>
    <script type="text/javascript">
    function DoMenu(num)
    {
       if(document.getElementById("ChildMenu"+num).className === "liblock")
       {
        document.getElementById("ChildMenu"+num).className = "collapsed";
        document.getElementById("liParent"+num).className = "sub_and";
       }else
       {
         document.getElementById("ChildMenu"+num).className = "liblock";
         document.getElementById("liParent"+num).className = "sub_Min";
        }
    }
    window.onload = function()
    {
      for (j=1;j<10;j++)

      var anchor = document.getElementById("ChildMenu"+j).getElementsByTagName('a');
      var ifr = document.getElementById('ifr');
      for (var i=0;i<anchor.length;i++)
    {
    anchor[i].onclick = function()
       {   ifr.src = this.href;
    return false;
    }
      }
    }
    }
    </script>
    <link href="faq.css" rel="stylesheet" media="all" type="text/css" />  
    </head>
    <body>
    <div id="wrapper" >
    <div id="main" >
    <iframe id="ifr" frameborder="0" scrolling=no onload="this.style.height = window.frames.ifr.document.documentElement.scrollHeight+'px'"  src="1.html"></iframe>
    </div> 
        
    <div id="PARENT">  <ul class="nav">
        <li id="liParent1" class="sub_and"><a href="#Menu=ChildMenu1" onClick="DoMenu(1,1)">Advertising</a>
          <ul id="ChildMenu1" class="collapsed">
            <li><a href="faq/1.html" #Menu=ChildMenu1>Advertising1</a></li>
            <li><a href="faq/2.html" #Menu=ChildMenu1>Advertising2</a></li>
            <li><a href="faq/3.html" #Menu=ChildMenu1>Advertising3</a></li>
            <li><a href="faq/4.html" #Menu=ChildMenu1>Advertising4</a></li>
            <li><a href="faq/5.html" #Menu=ChildMenu1>Advertising5</a></li>
          </ul>
        </li>  
      </ul>
            
    </div>   
    </div>
    </body>
    </html> *{padding:0px; margin:0px;}
    #PARENT {
     width:220px;
     height:1000px;
     margin:50px;
     float:left;
     display:block;
     position:relative;
    }
    #main{
    }
    #main iframe {
      border-left:2px solid gray;
    width:800px;
    margin:50px 20px;
    float:left;
    position: absolute;
    left:240px;  
     }
    .nav {
     font-family: arial, serif;
     font-size:12px;
     width:200px;
     line-height:24px;
     list-style-type:none;
     text-align:left;
     float:left;
    }
    .nav a {
     width: 150px;
     display: block;
     padding-left:20px;
    }
    .nav li {
     float:left;
     color:#DD1336;
     font-weight:bold;
    }
    .nav li ul {
     list-style:none;
     text-align:left;
     padding-left:15px;
     }
    .nav li ul li {
     padding:1px;
     font-weight:normal;
     width:180px;
     background:;
    }
    .nav li ul a {
     width:170px;
     padding-left:10px;
     }
    .nav li:hover ul {
     left: auto;
    }
    .nav li.sfhover ul {
     left: auto;
    }
    #content {
     clear: left;
    }
    .nav ul.collapsed {
     display: none;
    }
    .nav ul.liblock {
     display:block;
    }
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>main</title>
    </head><body>
    <h1 align="center">1</h1>
    <h1 align="center">2</h1>
    <h1 align="center">3</h1>
    <h1 align="center">4</h1>
    <h1 align="center">5</h1>
    <h1 align="center">6</h1>
    <h1 align="center">7</h1>
    </body>
    </html>
      

  6.   

    hey~有木有人啊。·帮我看看好吗。。