解决IFrame高度自适应

     在做项目中,在主页面Table中使用的Iframe框架,但是在设置Iframe的高度和宽度后,框架就失去了作用,不显示框架中加载的页面
     经过检查,总算找到了问题所在,当把Iframe的高度设置一个固定值后,页面就可以显示,但是我们不能准确知道页面的高度,页面的
高度会随着屏幕的高度而改变。
     通过查找资料,找到了解决办法
ContractedBlock.gif ExpandedBlockStart.gif Code
<table>
  
<tr>
    
<td>
    
</td>
  
</tr>
  
<tr>
   
<td style="vertical-align:top;width: 100%; height:100%;" >
       
<iframe id="bottom" name="bottom" frameborder="1" width=100% scrolling="auto" src="Main.aspx"></iframe>
   
</td>
  
</tr>
</table>
JavaScript代码:
ContractedBlock.gif ExpandedBlockStart.gif Code
<script language="JavaScript"> 
    
//** iframe自动适应页面 **//

    
//输入你希望根据页面高度自动调整高度的iframe的名称的列表
    //用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。

    
//定义iframe的ID
    var iframeids=["bottom"]

    
//如果用户的浏览器不支持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>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值