如何实现iframe(嵌入式帧)的自适应高度

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

源代码如下

< 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.onload
= dyniframesize
</ script >


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值