iframe 高度自适应

转自:http://apps.hi.baidu.com/share/detail/20320137

 

高度自适应:

    好几次看到有人提问问到如何实现 iframe 的自适应高度,能够随着页面的长度自动的适应以免除页面和 iframe 同时出现滚动条的现象,刚好我在工作中也碰到了类似问题,于是上网翻查,东抄抄西看看,弄出来这么一个函数,贴到页面里面就能用了。不敢独享,大家要是觉 得有用,欢迎使用

  源代码如下<code>

  <script type="text/javascript">

  //** iframe自动适应页面 **//

  //输入你希望根据页面高度自动调整高度的iframe的名称的列表

  //用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。

  //定义iframe的ID

  var iframeids=["test"]

  //如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏

  var iframehide="yes"

  function dyniframesize()

  {

  var dyniframe=new Array()

  for (i=0; i<iframeids.length; i++)

  {

  if (document.getElementById)

  {

  //自动调整iframe高度

  dyniframe[dyniframe.length] = document.getElementById(iframeids[i]);

  if (dyniframe[i] &&!window.opera)

  {

  dyniframe[i].style.display="block"

  if (dyniframe[i].contentDocument &&dyniframe[i].contentDocument.body.offsetHeight) //如果用户的浏览器是NetScape

  dyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight;

  else if (dyniframe[i].Document &&dyniframe[i].Document.body.scrollHeight) //如果用户的浏览器是IE

  dyniframe[i].height = dyniframe[i].Document.body.scrollHeight;

  }

  }

  //根据设定的参数来处理不支持iframe的浏览器的显示问题

  if ((document.all || document.getElementById) &&iframehide=="no")

  {

  var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])

  tempobj.style.display="block"

  }

  }

  }

  if (window.addEventListener)

  window.addEventListener("load", dyniframesize, false)

  else if (window.attachEvent)

  window.attachEvent("onload", dyniframesize)

  else

  window.οnlοad=dyniframesize

  </script>

  </code>

  使用的时候只要贴在<head></head>里面就可以了

高度自适应更简单的方法:

<script language="JavaScript" type="text/JavaScript">
<!--
function autoResize()
{
try
{
document.all["iframe1"].style.height=iframe1.document.body.scrollHeight
}
catch(e){}
}
</script>
<IFRAME name=iframe1 id=iframe1 src="test.htm" frameborder="NO" border="0" framespacing="0" width="100%" style="height:expression(1);aho:expression(autoResize())"></IFRAME>

 

iframe的滚动条很难看,很多时候需要自动调整高和宽 扩展到使页面显示正常。
搜索了一下,以下是解决办法:
<iframe id="iframe_resume" name ="iframe_resume_name" src="Resume0.aspx" scrolling="auto" frameborder="no" οnlοad="iframe_resize()"> </iframe>

function iframe_resize()
{
/方法一
document.getElementById("iframe_resume").style.height= iframe_resume_name.document.body.scrollHeight; // IE7 和Firefox 都可以
document.getElementById("iframe_resume").style.width = iframe_resume_name.document.body.scrollWidth; // IE7 和Firefox 都可以

//方法二:
// document.getElementById("iframe_resume").style.height= window.iframe_resume.document.body.scrollHeight; //IE7可以Firefox 不行
// document.getElementById("iframe_resume").style.width =iframe_resume.document.body.scrollWidth; //IE7可以Firefox 不行 , 一般要引用window对象的属性和方法时,不需要用“window.xxx”这种形式,而直接使用“xxx”就可以了。

return true;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值