有关iframe自适应高度的理解

发布时间:2020-07-11编辑:脚本学堂
本文介绍下,有关iframe框架自适应高度的理解,通过具体的例子加以分析,有需要的朋友可以参考下。

先看一段代码:
 

复制代码 代码示例:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>iframe自适应高度-www.jb200.com</title>
</head>
<body>
<IFRAME id="test" name="test" frameBorder=0 scrolling=no src="/asp/reg.asp" width="100%" height=0></IFRAME>
</body>
</html>
<script FOR=window EVENT=onload LANGUAGE="JScript">
 document.all("test").height=test.document.body.scrollHeight;
</script>

重要提示:src=中必须填写的网页地址,一定要和本页面在同一个站点上,否则,会提示:“拒绝访问!”

方法如下:
1、建立一个bottom.js的文件,然后输入下面的代码(只有两行哦)
 

复制代码 代码示例:
parent.document.all("框架ID名").style.height=document.body.scrollHeight;
parent.document.all("框架ID名").style.width=document.body.scrollWidth;

这里的 框架ID名 就是Iframe的ID,比如:
 

复制代码 代码示例:
<IFRAME id="框架ID名" name="left" frameBorder=0 scrolling=no src="XXX.asp" width="100%"></IFRAME>

2、给你网站里所有的被包含文件里面每个都加入
 

复制代码 代码示例:
<SCRIPT language = "javascript" src = "bottom.js"/></SCRIPT>

在WINXP、IE6下面测试通过。

Iframe自适应高度
 

<script language="JavaScript">
//** iframe自动适应页面 **//

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

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

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