现在的位置: 首页 > 综合 > 正文

内嵌框架iframe在火狐ff下自适高度(ie6、ie7、ff都正常)

2013年01月18日 ⁄ 综合 ⁄ 共 1233字 ⁄ 字号 评论关闭

 

1.脚本

在调用iframe的页面添加脚本

var FFextraHeight = 0;
if(window.navigator.userAgent.indexOf("Firefox")>=1)
{
FFextraHeight =35;//在火狐下的参数 可以调
}
function ReSizeiFrame(iframe)
{
if(iframe && !window.opera)
{
iframe.style.display = "block";
if(iframe.contentDocument && iframe.contentDocument.body.offsetHeight)
{
iframe.height = iframe.contentDocument.body.offsetHeight + FFextraHeight;//设置iframe在火狐下高度
}
else if (iframe.Document && iframe.Document.body.scrollHeight)
{
iframe.height = iframe.Document.body.scrollHeight;//设置iframe在ie下的高度

}
}
}

2.调用

<iframe src="test.html" scrolling="no" id="iFrame1" frameborder="0" width="475" onload="javascript:ReSizeiFrame(this);"></iframe>

=====================================================================

内嵌框架iframe自适高度终极方案:

 

<iframe id="frame_content" src="iframe_b.html" scrolling="no" frameborder="0" onload="this.height=100"></iframe>

<script type="text/javascript">
function reinitIframe(){
  var iframe = document.getElementById("frame_content");
  try{
       var bHeight = iframe.contentWindow.document.body.scrollHeight;
       var dHeight = iframe.contentWindow.document.documentElement.scrollHeight;
       var height = Math.max(bHeight, dHeight); //一个ff 一个ie 取大值兼容
       iframe.height =  height;
  }catch (ex){}
}
window.setInterval("reinitIframe()", 200);//定时刷新重取 经测试对cpu 没啥影响
</script>

 

 

抱歉!评论已关闭.