欢迎各位兄弟 发布技术文章
这里的技术是共享的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 你好,你这个问题就是iframe自适应高度的问题。以下代码可以解决: < iframe src = "default.html" id = "mainweb" name = "mainweb" width = "100%" height = "100%" frameborder = "0" onLoad = "iFrameHeight()" ></ iframe > < script type = "text/javascript" language = "javascript" > function iFrameHeight() { var ifm= document.getElementById("mainweb"); var subWeb = document.frames ? document.frames["mainweb"].document : ifm.contentDocument; if(ifm != null && subWeb != null) { ifm.height = subWeb.body.scrollHeight; } } </ script > 为了测试,iframe的height你可以预先设置一个固定高度比如:height="200"(也可以使用100%),iframe加载完,会自动调整页面大小。 |
代码:
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns="http://www.w3.org/1999/xhtml"> < head > < title >用JS控制IFrame的高度,让它的高度自动适应</ title > < style type="text/css"> .letCenter { margin: 30px auto; width: 800px; height: 50px; } </ style > < script language="javascript" type="text/javascript"> //输入你希望根据页面高度自动调整高度的iframe的名称的列表 //用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。 //定义iframe的ID var iframeids = ["menuFrame"]; //如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏 var iframehide = "yes"; function dyniframesize() { var dyniframe = new Array(); for (var 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) { //如果用户的浏览器是IE var contentDocHeight = dyniframe[i].contentDocument.body.offsetHeight; dyniframe[i].height = contentDocHeight; } else if (dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight) { //其它浏览器 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> </ head > < body > < div class="letCenter"> < h1 > 这是主页面</ h1 > </ div > < div style="border:solid 1px red; margin:0px 0px 0px 0px; padding:0px 0px;"> < iframe id="menuFrame" name="menuFrame" frameBorder="0" scrolling="no" src="ControlIFrameHeight_Child.htm" width="100%"></ iframe > </ div > </ body > </ html > |
谢谢浏览!
来自 http://www.cnblogs.com/great/archive/2011/03/17/control-iframe-height-with-javascript.html
如果希望通过按钮动态修改iframe的高度和宽度,可以参考下面的JS代码
希望本文所述对大家的javascript程序设计有所帮助。