iframe 自适应高度

js代码:
function  SetWinHeight(obj){
        var  win=obj;
        if  (document.getElementById)
      {
              if  (win && !window.opera){
                    if  (win.contentDocument && win.contentDocument.body.offsetHeight)
                        win.height = win.contentDocument.body.offsetHeight;
                    else  if  (win.Document && win.Document.body.scrollHeight)
                        win.height = win.Document.body.scrollHeight;
            }     
      }

}
 html代码:
        < iframe  src = "<{spUrl c=main a=indexRight}>"     name = "pindex"  id = "pindex"  allowtransparency =  "true"    frameborder  = "0"  scrolling =  "no"    style =" width  : 740px ; min-height :  860px ; _height  : 400px ; margin : 0 ;"  onload="SetWinHeight(this)"  >  </  iframe >


之前一直被iframe自适应高度的问题困扰,很多JS代码在FF里面似乎就变成哑巴了。后来下面这段代码终于被我从万千号称兼容FF的代码堆中翻了出来。我已经用过了,真的好用。尤其是对于我这样的JS水平较低(真不好意思)的人来说,这段代码简单易懂,方便修改,只要把下面的代码复制粘贴到iframe所在页面的<body>标签里面,并且修改一下ID名就行了 (注意,要修改的地方有两个,位置是下面代码中绿色的地方)。
向原创这段代码的朋友致敬。
 
步骤1:在<body>标签下先输入如下JS代码
 
<script language="javascript">
function adjustFrameSize()
  {
            var frm = document.getElementById(" iframe1"); //将iframe1替换为你的ID名
            var subWeb = document.frames ? document.frames[" iframe1"].document : frm.contentDocument;
           if(frm != null && subWeb != null)
          {
                   frm.style.height="0px";//初始化一下,否则会保留大页面高度
                   frm.style.height = subWeb.documentElement.scrollHeight+"px";
                   frm.style.width = subWeb.documentElement.scrollWidth+"px";
                   subWeb.body.style.overflowX="auto";
                   subWeb.body.style.overflowY="auto";

} }
</script>
 
步骤2:在iframe标签中加上id="iframe1" οnlοad="adjustFrameSize()"
例如<iframe  id="iframe1" οnlοad="adjustFrameSize()" scrolling="no" src="iframe1.html" width="100%" height="300px" target="_self" frameborder="0"></iframe>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值