详细解决方案
让网页框架自适应高度(依据内容自动适应)
热度:99 发布时间:2012-10-29 10:03:53.0
让网页框架自适应高度(根据内容自动适应)
? |
正文:
通过以下的代码就可以轻松实现框架自适应高度。
?
以下是引用片段: <script?type="text/javascript">???? //**?iframe自动适应页面?**//???? ??? //输入你希望根据页面高度自动调整高度的iframe的名称的列表???? //用逗号把每个iframe的ID分隔.?例如:?["myframe1",?"myframe2"],可以只有一个窗体,则不用逗号。???? ??? //定义iframe的ID???? var?iframeids=["alixixi.com"]???? ??? //如果用户的浏览器不支持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>?? |
?
但在一次实际应用中,该代码写在了带有框架的页面上,页面加载时,框架是可以自动适应初始大小了。
但是如果改变框架里的内容后,框架还是不会自适应高度,那么,该如何解决这个问题呢。
在框架页面,比如:http://www.alixixi.com/down/index.html的最底部插入一行代码,就可以实现了,代码如下:
<script>parent.dyniframesize();</script>
意思就是在框架页重新加载时,就刷新运行一下父页的JS函数来调整框架高度,这样就可以实现自适应了
|