Iframe高度随内容自动调节

以下两种方法会让网页中的iframe高度自动适应嵌入页的内容高度。

方式一:在被嵌入页里写入代码
假设main.htm文件内容:
    <iframe src="iframe.htm"></iframe>
则在iframe.htm文件中加入如下代码:
    <script  language="JavaScript">
    <!--
    function window.onload() {
        if(top.location != self.location){
            var a = window.parent.document.getElementsByTagName('iframe');
            for (var i=0; i<a.length; i++){
                if (a[i].name == self.name) {
                    a[i].height = document.body.scrollHeight+10; return;
                }
            }
        }
    }
    // -->
    </script>
要测试效果则在iframe.htm文件中再加入一个表格(表格高度设大些):
    <table width="100%" height="1000"><tr><td valign="bottom">Hello!</td></tr></table>

用浏览器打开mail.htm就可以预览效果。

方式二:在父页中加入代码,被嵌入页不变(有两种方法)
一法:

在父页中加入如下代码:
<script language="Javascript">
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 dyniframesize(iframename) {
  var pTar = null;
  if (document.getElementById){
    pTar = document.getElementById(iframename);
  }
  else{
    eval('pTar = ' + iframename + ';');
  }
  if (pTar && !window.opera){
    //begin resizing iframe
    pTar.style.display="block"
   
    if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight){
      //ns6 syntax
      pTar.height = pTar.contentDocument.body.offsetHeight+FFextraHeight;
    }
    else if (pTar.Document && pTar.Document.body.scrollHeight){
      //ie5+ syntax
      pTar.height = pTar.Document.body.scrollHeight;
    }
  }
}
</script>
<iframe id="myTestFrameID" οnlοad="javascript:{dyniframesize('myTestFrameID');}" marginwidth=0 marginheight=0 frameborder=0 scrolling=no src="myiframe.htm" width=200 height=100></iframe>

然后myiframe.htm中为正常页面内容。

用浏览器打开父页即可看到效果,该方法对各种浏览器通用,包括IE、FF、Opera等。

二法:
在父页中写入以下代码:
<iframe id=headlogin marginWidth=0  marginHeight=0 src="myiframe.htm" frameBorder=0 width=100% scrolling=no height=25 οnlοad="this.height=this.contentWindow.document.body.scrollHeight"></iframe>

用浏览器打开父页即可看到效果。以上JScript代码在opera下不能正常显示出效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值