<div style="height:600px;width:100%;" id="homeBody">
<iframe name="homeIframe" width="100%" height="100%" src="" onload="getHeight();"></iframe>
</div>
<script>
function getHeight(){
var iframeHeight = homeIframe.document.documentElement.scrollHeight + 30 + "px";
document.getElementById("homeBody").style.height = iframeHeight;
}
</script>
第一次设置iframe src之后,得到的内容高度是正确的.但切换选项卡重新设置iframe src之后,取得的高度就一直往上增,发现已不是内容高了.请问怎么正确获取iframe高

解决方案 »

  1.   

    一般iframe 都是  字页面得到高度 再传给父页面一个方法
      

  2.   

    测试ubb效果家多多房产网
      

  3.   

    试试
    <div style="height:600px;width:100%;" id="homeBody">
    <iframe name="homeIframe" width="100%" height="100%" src="" onload="getHeight(this);"></iframe>
    </div>
    <script>
    function getHeight(ifr){
    var iframeHeight = ifr.document.body.scrollHeight + 30 + "px";
    document.getElementById("homeBody").style.height = iframeHeight;
    }
    </script>
      

  4.   

    楼上有误,少了contentWindow,更正下js部分。。function getHeight(ifr){
    var iframeHeight = ifr.contentWindow.document.body.scrollHeight + 30 + "px";
    document.getElementById("homeBody").style.height = iframeHeight;
    }
      

  5.   

    页面的iframe页面里面,有异步的请求加载内容.发现得到的iframeHeight =0,试了下页面没有异步加载的,是可以正确拿到内容高的.因为有异步,所以我算高的时候,是setTimeout(setHeight,1500);延迟了取高.我之前的方法第一次取是对的.但是后面取的高,发现高度就一直往上增的...