iFrame 自适应高度,在IE6/IE7/IE8/Firefox/Opera/Chrome/Safari

来源:互联网 发布:c语言右移运算 编辑:程序博客网 时间:2024/04/29 14:01

<iframe  id="iframepage" name="iframepage" frameBorder=0 scrolling=no width="100%" onLoad="iFrameHeight()" ></iframe>Javascript代码:<script type="text/javascript" language="javascript">function iFrameHeight() {var ifm= document.getElementById("iframepage");var subWeb = document.frames ? document.frames["iframepage"].document : ifm.contentDocument;if(ifm != null && subWeb != null) {ifm.height = subWeb.body.scrollHeight;}}</script>
兼容性更好一些:
<script language="javascript" type="text/javascript">function dyniframesize(down) {var pTar = null;if (document.getElementById){pTar = document.getElementById(down);}else{eval('pTar = ' + down + ';');}if (pTar && !window.opera){//begin resizing iframepTar.style.display="block"if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight){//ns6 syntaxpTar.height = pTar.contentDocument.body.offsetHeight +20;pTar.width = pTar.contentDocument.body.scrollWidth+20;}else if (pTar.Document && pTar.Document.body.scrollHeight){//ie5+ syntaxpTar.height = pTar.Document.body.scrollHeight;pTar.width = pTar.Document.body.scrollWidth;}}}</script><iframe src ="/default2.aspx" frameborder="0" marginheight="0" marginwidth="0" frameborder="0" scrolling="auto" id="ifm" name="ifm" onload="javascript:dyniframesize('ifm');" width="100%"></iframe>
批量iframe自适应:

工作中遇到iframe随所含内容自适应高度的问题,以前在网上看到过类似问题的解决方法,于是搜索一下,找到了一个比较完整的能够兼容浏览器的解决方法,省得自己写了。
虽然不用自己写,思路还是要明白,基本上就是取得iframe属性src所指定的包含文档中内容的高度,然后用来设置iframe自身的高度,在iframe所在页面载入时对页面中的所有需要自适应高度的iframe进行自动设置,省时省力,如果确定页面中全部iframe都需要自适应高度,直接取得iframe数组给代码,就连ID都不用自己写了,完成程序搞定。

<script language="javascript">//输入你希望根据页面高度自动调整高度的iframe的名称的列表//用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。//定义iframe的IDvar iframeids=["test"];//如果用户的浏览器不支持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) //如果用户的浏览器是NetScapedyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight;else if (dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight) //如果用户的浏览器是IEdyniframe[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);elsewindow.onload=dyniframesize;</script>


原创粉丝点击