博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Iframe跨浏览器自适应高度完美解决方案

Posted on 2008-05-24 23:18  linFen  阅读(1858)  评论(1编辑  收藏  举报
这个解决方案使用了Jquery,所以需要在iframe的src页面里面引入

父页面里面 简单点 <iframe id="if1" scrolling="no" src="2.html"></iframe>

在iframe的src页面里面
[html]
<script type="text/javascript">
function resizeContent()
{
       $(window.parent.document).find("#if1").height($("#content").height());
}

function show400()
{
       if($("#test400").css("display") == "none")
       {
              $("#test400").css("display","");
              resizeContent();
       }
       else
       {
              $("#test400").css("display","none");
              resizeContent();
       }
}
$(document).ready(function(){
       resizeContent();
})
</script>
<div id="left111">
  <div class="mnav" onclick="test400()"></div>
  <div class="mnav"><a href="ProductList.html">超级链接</a></div>
  <div class="mnav"><a href="ProductCategory.html">超级链接</a></div>
  <div class="mnav"><a href="ProductCategory.html">超级链接</a></div>
  <div id="test400" style="display:none;height:400px;"></div>
  <div class="mnav"><a href="Orders.html">超级链接</a></div>
  <div class="mnav Mcurrent"><a href="Keywords.html">超级链接</a></div>
  <div class="mnav"><a href="#">超级链接</a></div>
  <div class="mnav"><a href="#">超级链接</a></div>
  <div class="mnav"><a href="#">超级链接</a></div>
  <div class="mnav"><a href="#">超级链接</a></div>
  <div class="mnav"><a href="#">超级链接</a></div>
  <div class="mnav"><a href="#">超级链接</a></div>
  <br />
</div>
[html]
注释 :这里面的 $(window.parent.document).find("#if1").height($("#content").height()); 这句话最初是
$(window.parent.document).find("#if1").height($(document).height());
可以实现自适应高度,但是不能实现缩放自适应。因为document的高度是展示内容出现过的最高高度,所以这里如果点击展开,iframe不会缩小,只会展示最高出现过的高度。

所以这里要用一个父层容器,也就是最新的代码。这样就可以实现自适应了。