当前页面: 开发资料首页 → Javascript 专题 → 用javascript 自动调节iframe高度出现问题
摘要: 用javascript 自动调节iframe高度出现问题
我一个页面需要嵌入10个iframe,希望每个显示的数据不超过10条,超过就出现滚动条。没有数据则只显示表头。最开始用jsp去统计每个iframe需要显示数据的总数,然后计算,超过10条。ifram的高度就制定为一固定制,反之,取数据条数乘上每条的高度。这样做可以实现功能,但是速度比较慢。
于是就想用javascript去自动调节ifram的高度,函数如下:
var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
//extra height in px to add to iframe in FireFox 1.0+ browsers
var FFextraHeight=getFFVersion>=0.1? 16 : 0 
function  isiFrameLoadComplete(iframename){
 var pTar = document.getElementById(iframename);
 if(pTar.readyState=="complete"){
  return true;
 }else{
  return false;
 }
 
}
function dsed_resize(iframename) {
  var pTar = null;
   if (document.getElementById){
     pTar = document.getElementById(iframename);
   }
   else{
     eval('pTar = '+iframename+';');
   }
   pTar.height = 25;
if (pTar && !window.opera){
     pTar.style.display="block"
    
     if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight){
        //ns6 syntax
        pTar.height = pTar.contentDocument.body.offsetHeight+FFextraHeight; 
        if(pTar.height<=25){
         pTar.height = 25;
        }else if(pTar.height>=210){
         pTar.height = 210;
        }
      
     }
     else if (pTar.Document && pTar.Document.body.scrollHeight){
        //ie5+ syntax
        pTar.height = pTar.Document.body.scrollHeight;
        if(pTar.height<=25){
         pTar.height = 25;
        }else if(pTar.height>=210){
         pTar.height = 210;
        }
     }
   }
}
但是现在又遇到一个问题,第一次打开页面的时候,可能有一个iframe不能正常显示,刷新一下又可以了。我以为iframe的个数太多了,所以导致这样,然后特地为每个iframe写个javascript函数,结果还是一样。真是没招了!