Iframe框架高度自适应的实现

王朝html/css/js·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

解决iframe框架页面自适应高度问题代码如下,需要注意的是框架引用页面一定要设置name属性,否则会不生效

方案一:

<iframe src="test.asp" width="100%" frameborder="0" scrolling="no" name="hj" id="hj"></iframe>

test.asp页面head间增加如下JS代码

<SCRIPT LANGUAGE="JavaScript">

function f_frameStyleResize(targObj){

var targWin = targObj.parent.document.all[targObj.name];

if(targWin != null) {

var HeightValue = targObj.document.body.scrollHeight

if(HeightValue < 600){HeightValue = 600}

targWin.style.pixelHeight = HeightValue;

}

}

function f_iframeResize(){

bLoadComplete = true; f_frameStyleResize(self);

}

var bLoadComplete = false;

window.onload = f_iframeResize;

</SCRIPT>

---------------------------------------------------

方案二:备用

在主页面增加如下JS代码

<script type="text/javascript">

var iframeids=["myblog"]

var iframehide="yes"

function dyniframesize()

{

var dyniframe=new Array()

for (i=0; i<iframeids.length; i++)

{

if (document.getElementById)

{

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)

dyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight;

else if (dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight)

dyniframe[i].height = dyniframe[i].Document.body.scrollHeight;

}

}

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>

跨域引用有权限问题,有待进一步研究

iframe页面动态内容如果用div方式实现,自适应高度不稳定,改成table方式实现,解决问题

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航