iframe自适应高度
有没有不用javascript的方法
谢谢
有没有不用javascript的方法
谢谢
解决方案 »
- 从数据库表中取了某些条记录的某个字段值要用什么类型的集合存取?
- Comet问题 IE死掉 IIS也出问题
- asp.net界面问题?????
- 菜鸟请教一个技术问题,100分感谢
- 为什么会有这个错误<%@ Page EnableEventValidation="true" %>
- 如何遍历文件夹内的图片文件,并改名?
- 如何把数组绑定到DataList上?
- ASP。NET如何捕捉关闭窗口事件
- Asp.Net Session 未将对象引用到实例
- 大家看看以我现在的.net水平去这样一家小公司应该要多少月薪?
- 求解一个select在.net中的实现方法
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 大哥,大姐:急,请提供一个可以手工动态增加输入框控件,然后循环保存,这样的功能的代码我吗?
{
if (document.frames[iFrameid].closed == true)
{
return;
}
// if(document.frames[iFrameid].docmument==null)
// {
// return ;
// }
//解决用户同时打开多个,导致CreateIframe里面赋值为0
//手工刷新框架里面的网页会为null,网页加载完了以后事件又被触发,这时才能取到值
try
{
if (document.frames[iFrameid].document.body == null)
{
return;
}
}
catch (err)
{
return;
}
var h; if (GetBrowser() == "IE")
{
h = document.frames[iFrameid].document.body.scrollHeight + 20;
}
else
{
h = document.frames[iFrameid].document.body.clientHeight + 20;
} if (h < 520)
{
h = 520;
} //$(iFrameid).style.height = h;
//$('TabPageContent').style.height = h;
}
(1).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.aspx" width="100%"></IFRAME> 2、给你网站里所有的被包含文件里面每个都加入 <script language = "JavaScript" src = "bottom.js"/></script> 3、OK,收工! 我在WIN2003、IE6下面测试通过。很简单吧!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jxufewbt/archive/2006/05/24/752458.aspx
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( "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> 高度的函数,产生了死循环调用。 给你这一段代码!你看看!
function SetCwinHeight(){
var mainid=document.getElementById("infoA");
if (document.getElementById){
if (mainid && !window.opera){
if (mainid.contentDocument && mainid.contentDocument.body.offsetHeight){
mainid.height = mainid.contentDocument.body.offsetHeight;
}else if(mainid.Document && mainid.Document.body.scrollHeight){
mainid.height = mainid.Document.body.scrollHeight+30;
}
}
}
}
</script>