Chinaunix首页 | 论坛 | 博客
  • 博客访问: 320565
  • 博文数量: 176
  • 博客积分: 2970
  • 博客等级: 少校
  • 技术积分: 1520
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-11 14:35
文章存档

2011年(10)

2010年(18)

2009年(62)

2008年(86)

我的朋友
最近访客

分类: 系统运维

2009-12-30 09:51:37

方法一:

在主页面中对于嵌入的iframe页面高度未知,而且iframe页面的高度也不定,故不能在主页面中通过DOM来控制高度。在iframe页面中加入以下脚本便可实现:

在Iframe页面里添加以下JS:

<script type=”text/javascript”>
/*
iframe 高度自适应脚本(IE6+、FF、Opera、Chrome等测试通过) 作者未知
*/

function iframeAutoFit()
{
   try
        {
          if(window!=parent)
            {
            var a = parent.document.getElementsByTagName(”IFRAME”);
             for(var i=0; i<a.length; i++) //author:meizz
               {
                if(a[i].contentWindow==window)
                   {
                  var h1=0, h2=0;
                  a[i].parentNode.style.height = a[i].offsetHeight +”px”;
                  a[i].style.height = “10px”;
if(document.documentElement&&document.documentElement.scrollHeight)
                {
                   h1=document.documentElement.scrollHeight;
                 }
                 if(document.body) h2=document.body.scrollHeight;
                 var h=Math.max(h1, h2);
               if(document.all) {h += 4;}
                if(window.opera) {h += 1;}
                a[i].style.height = a[i].parentNode.style.height = h +”px”;
                }
          }
     }
 }
catch (ex){}
  }
if(window.attachEvent)
{
   window.attachEvent(”onload”,iframeAutoFit);
}
else if(window.addEventListener)
{
     window.addEventListener(’load’, iframeAutoFit, false);
}
</script>


父页面引用Iframe代码如下:

<iframe frameborder=”0″ width=”100%src=”#” name=”resultIframe”
id=”resultIframe” scrolling=”no”></iframe>


方法二:

据说各个浏览器测试过.

<script language="javascript">
function resize(){var h=50;
try{
if(ifr_lb&&ifr_lb.document&&ifr_lb.document.body){
var o=ifr_lb.document.body;
var h=o.scrollHeight + (typeof(o.clientTop)== 'number' ?o.clientTop * 2 : 0);}
}
catch(e){var h=50;window.status=e.description;}
if(h<50){h=50;}
document.getElementById('ifr_lb').style.height=h+'px';
return h+"px";
}
window.onresize=resize;
</script>

<iframe id="ifr_lb" name="ifr_lb" onload="resize()" frameborder="0" src="" scrolling="no" frameborder="no" style="width:100%;;height:expression(resize())" height="22" target="_tc">
浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe>


方法三:

<iframe id="iFrame1" name="iFrame1" width="100%" onload="this.height=iFrame1.document.body.scrollHeight" frameborder="0" src="index.htm"></iframe>

看到了吧,关键就在于onload="this.height=iFrame1.document.body.scrollHeight"!

方法四:

function SetCwinHeight()
{
var cwin=document.getElementById("cwin");
if (document.getElementById)
{
if (cwin && !window.opera)
{
if (cwin.contentDocument && cwin.contentDocument.body.offsetHeight)
cwin.height = cwin.contentDocument.body.offsetHeight;
else if(cwin.Document && cwin.Document.body.scrollHeight)
cwin.height = cwin.Document.body.scrollHeight;
}
}
}


<iframe width="778" align="center" height="200" id="cwin" name="cwin" onload="Javascript:SetCwinHeight(this)" frameborder="0" scrolling="no"></iframe>


function SetCwinHeight(obj)
{
  var cwin=obj;
  if (document.getElementById)
  {
    if (cwin && !window.opera)
    {
      if (cwin.contentDocument && cwin.contentDocument.body.offsetHeight)
        cwin.height = cwin.contentDocument.body.offsetHeight;
      else if(cwin.Document && cwin.Document.body.scrollHeight)
        cwin.height = cwin.Document.body.scrollHeight;
    }
  }
}

引用时onload="javascript:SetCwinHeight(this)"
阅读(552) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~