自动调整iframe的高度

【实例描述】

iframe框架可以动态加载网页,并能嵌入到当前页面中,实现页面嵌套的功能。为了更好地显示子页,本例学习如何自动调整iframe的高度。

【实现代码】

本例有两个页面,第一个页面“iframe自适应高度1.htm”中有一个iframe,实现代码如下所示:

<html>

<head>

<title>iframe自适应高度</title>

</head>

<body>

<div><iframe src="iframe自适应高度.htm"></iframe></div>

</body>

</html>

第二个页面会自动调整子页的大小,实现代码如下所示:

<html>

<head>

<title>iframe自适应网页</title>

<script type="text/javascript">

//自动调整iframe框架的方法

function iframeAuto()

{

try

{

if(window!=parent)

{

//定位需要调整的frame框架(在父级窗口中查找)

var a = parent.document.getElementsByTagName("IFRAME");

for(var i=0; i<a.length; i++)

{

if(a[i].contentWindow==window)

{

var h1=0, h2=0;

a[i].parentNode.style.height = a[i].offsetHeight +"px";

a[i].style.height = "10px";              //首先设置高度为10px,后面会修改

if(document.documentElement&&document.documentElement.scrollHeight)

{

h1=document.documentElement.scrollHeight;

}

if(document.body) h2=document.body.scrollHeight;

var h=Math.max(h1, h2);               //取两者中的较大值

if(document.all) {h += 4;}

if(window.opera) {h += 1;}

//调整框架的大小

a[i].style.height = a[i].parentNode.style.height = h +"px";

} } }

}

catch (ex){}

}

//事件绑定的方法,支持IE5以上版本

if(window.attachEvent)

{

window.attachEvent("onload", iframeAuto);

}

else if(window.addEventListener)

{

window.addEventListener('load', iframeAuto, false);

}

//-->

</script>

</head>

<body>

<table border="1" width="200" style="height: 400px; background-color: gray">

<tr>

<td>iframe 自适应其加载的网页</td>

</tr>

</table>

</body>

</html>

【运行效果】

iframe自适应高度实例的运行效果如图5-8所示。

图5-8  iframe自适应高度实例的运行效果

【难点剖析】

本例的重点有如何获取父级页面中的iframe、如何实现iframe的自动调整。获取父级页面中的iframe,主要依靠“parent.document.getElementsByTagName("IFRAME");”语句,其中的“parent”便是获取的父级窗口。自动调整功能实现是将调整方法绑定到onload事件中,即窗体一加载便调整iframe的大小。

 

原贴:http://book.csdn.net/bookfiles/695/10069521616.shtml

<!-- page -->

你可能感兴趣的:(JavaScript,html,框架,.net,Opera)