Iframe自适应其加载的内容高度
2011-10-28 14:40
363 查看
main.htm:
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312' />
<meta name='author' content='F.R.Huang(meizz梅花雪)//www.meizz.com' />
<title>iframe自适应加载的页面高度</title>
</head>
<body>
<div><iframe src="child.htm"></iframe></div>
</body>
</html>
child.htm:
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312' />
<meta name='author' content='F.R.Huang(meizz梅花雪)//www.meizz.com' />
<title>iframe 自适应其加载的网页(多浏览器兼容)</title>
<script type="text/javascript">
<!--
function iframeAutoFit()
{
try
{
if(window!=parent)
{
var a = parent.document.getElementsByTagName_r("IFRAME");
for(var i=0; i<a.length; i++) //author:meizz
{
if(a[i].contentWindow==window)
{
var h1=0, h2=0;
a[i].parentNode.style.height = a[i].offsetHeight +"px";
a[i].style.height = "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){}
}
if(window.attachEvent)
{
window.attachEvent("onload", iframeAutoFit);
//window.attachEvent("onresize", iframeAutoFit);
}
else if(window.addEventListener)
{
window.addEventListener('load', iframeAutoFit, false);
//window.addEventListener('resize', iframeAutoFit, false);
}
//-->
</script>
</head>
<body>
<table border="1" width="200" style="height: 400px; background-color: yellow">
<tr>
<td>iframe 自适应其加载的网页(多浏览器兼容,支持XHTML)</td>
</tr>
</table>
</body>
</html>
很多人反应在IE7里使用它会死机,那是因为在自适应高度时触发了 window.onresize 事件,而这个事件又去调用这个调整 <iframe> 高度的函数,产生了死循环调用。
转自:http://blog.csdn.net/meizz/archive/2006/03/27/639857.aspx
==============================================================
但是网页不能刷新。把这两句都注释掉。问题解决。。
// window.attachEvent("onresize", iframeAutoFit);
// window.addEventListener('resize', iframeAutoFit, false);
==============================================================
iframe 自适应高度 js实现
代码如下:
注意!不能跨域使用,传到服务器,或者自己的iis里运行iframe 本域页面.~~
引用
<iframe src="http://www.pcieee.cn/" style="width: 100% ; border: 0px" frameborder=0 scrolling=yes name=right onload="init()" border="0"></iframe>
<script>
var lastHeight;
function init() {
aaa();
lastHeight= right.document.body.scrollHeight;
setInterval(function(){
if(right.document.body.scrollHeight!=lastHeight) {
aaa();
lastHeight= right.document.body.scrollHeight;
}
},1);
}
function aaa(){
document.all('right').height=right.document.body.scrollHeight + 20;
}
</script>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312' />
<meta name='author' content='F.R.Huang(meizz梅花雪)//www.meizz.com' />
<title>iframe自适应加载的页面高度</title>
</head>
<body>
<div><iframe src="child.htm"></iframe></div>
</body>
</html>
child.htm:
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312' />
<meta name='author' content='F.R.Huang(meizz梅花雪)//www.meizz.com' />
<title>iframe 自适应其加载的网页(多浏览器兼容)</title>
<script type="text/javascript">
<!--
function iframeAutoFit()
{
try
{
if(window!=parent)
{
var a = parent.document.getElementsByTagName_r("IFRAME");
for(var i=0; i<a.length; i++) //author:meizz
{
if(a[i].contentWindow==window)
{
var h1=0, h2=0;
a[i].parentNode.style.height = a[i].offsetHeight +"px";
a[i].style.height = "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){}
}
if(window.attachEvent)
{
window.attachEvent("onload", iframeAutoFit);
//window.attachEvent("onresize", iframeAutoFit);
}
else if(window.addEventListener)
{
window.addEventListener('load', iframeAutoFit, false);
//window.addEventListener('resize', iframeAutoFit, false);
}
//-->
</script>
</head>
<body>
<table border="1" width="200" style="height: 400px; background-color: yellow">
<tr>
<td>iframe 自适应其加载的网页(多浏览器兼容,支持XHTML)</td>
</tr>
</table>
</body>
</html>
很多人反应在IE7里使用它会死机,那是因为在自适应高度时触发了 window.onresize 事件,而这个事件又去调用这个调整 <iframe> 高度的函数,产生了死循环调用。
转自:http://blog.csdn.net/meizz/archive/2006/03/27/639857.aspx
==============================================================
但是网页不能刷新。把这两句都注释掉。问题解决。。
// window.attachEvent("onresize", iframeAutoFit);
// window.addEventListener('resize', iframeAutoFit, false);
==============================================================
iframe 自适应高度 js实现
代码如下:
注意!不能跨域使用,传到服务器,或者自己的iis里运行iframe 本域页面.~~
引用
<iframe src="http://www.pcieee.cn/" style="width: 100% ; border: 0px" frameborder=0 scrolling=yes name=right onload="init()" border="0"></iframe>
<script>
var lastHeight;
function init() {
aaa();
lastHeight= right.document.body.scrollHeight;
setInterval(function(){
if(right.document.body.scrollHeight!=lastHeight) {
aaa();
lastHeight= right.document.body.scrollHeight;
}
},1);
}
function aaa(){
document.all('right').height=right.document.body.scrollHeight + 20;
}
</script>
相关文章推荐
- Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- JavaScript实现Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- JavaScript应用:iframe自适应其加载的内容高度(zz)
- JavaScript应用:Iframe自适应其加载的内容高度 (转)
- Iframe自适应其加载的内容高度
- 【经验分享】Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- Iframe自适应其加载的内容高度
- Iframe自动适应加载内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度
- javascript应用:Iframe自适应其加载的内容高度
- JavaScript应用:Iframe自适应其加载的内容高度