解决IFrame高度自适应

 

解决IFrame高度自适应
     在做项目中,在主页面Table中使用的Iframe框架,但是在设置Iframe的高度和宽度后,框架就失去了作用,不显示框架中加载的页面
     经过检查,总算找到了问题所在,当把Iframe的高度设置一个固定值后,页面就可以显示,但是我们不能准确知道页面的高度,页面的
高度会随着屏幕的高度而改变。
     通过查找资料,找到了解决办法

<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代码:

<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>

如需转载请加入本人Blog地址     

http://zhf.cnblogs.com/

Tag标签: 框架, iframe, height, 高度

你可能感兴趣的:(JavaScript,框架,iframe,浏览器,Blog,table)