第一种方法:代码简单,兼容性还可以,大家可以先测试下。
-
function SetWinHeight(obj)
-
{
-
var win=obj;
-
if (document.getElementById)
-
{
-
if (win && !window.opera)
-
{
-
if (win.contentDocument && win.contentDocument.body.offsetHeight)
-
win.height = win.contentDocument.body.offsetHeight;
-
else if(win.Document && win.Document.body.scrollHeight)
-
win.height = win.Document.body.scrollHeight;
-
}
-
}
-
}
最后,加入iframe,不能丢掉onload属性,当然了,id也必须也函数中的win匹配
-
align="center" height="200" id="win" name="win" onload="Javascript:SetWinHeight(this)" frameborder="0" scrolling="no" src="1.htm">
这么的这种也是跟上面的解决方法类似的代码
经典代码 iFrame 自适应高度,在IE6/IE7/IE8/Firefox/Opera/Chrome/Safari通过测试。
HTML代码:
-
id="iframepage" name="iframepage" frameBorder=0 scrolling=no width="100%" onLoad="iFrameHeight()" >Javascript代码:
-
下面这个兼容性更好一些
-
-
frameborder="0" marginheight="0" marginwidth="0" frameborder="0" scrolling="auto" id="ifm" name="ifm" onload="javascript:dyniframesize('ifm');" width="100%">
-
另一种情况的iframe解决方案(超简单)
重要提示:src=中你必须填写的网页地址,一定要和本页面在同一个站点上,否则,会抱错,说“拒绝访问!”(实际上这是因为Js的跨域问题导致拒绝访问的)
之前自己也碰到过这个问题,为了得到答案去网上搜索,发现有不少人也遇到了这样的问题,现在就把解决方法共享一下
1、建立一个bottom.js的文件,然后输入下面的代码(只有两行哦)
-
parent.document.all("框架ID名").style.height=document.body.scrollHeight;
-
parent.document.all("框架ID名").style.width=document.body.scrollWidth;
这里的 框架ID名 就是Iframe的ID,比如:
-
name="left" frameBorder=0 scrolling=no src="XXX.asp" width="100%">
2、给你网站里所有的被包含文件里面每个都加入
3、OK,收工!
在WINXP、IE6下面测试通过。
实现 iframe 的自适应高度
实现 iframe 的自适应高度,能够随着页面的长度自动的适应以免除页面和 iframe 同时出现滚动条的现象。
对于iframe自适应高度的内容,还可以参考下:的三个例子这篇文章。
第三中方法批量iframe自适应:
工作中遇到iframe随所含内容自适应高度的问题,以前在网上看到过类似问题的解决方法,于是搜索一下,找到了一个比较完整的能够兼容浏览器的解决方法,省得自己写了。
虽然不用自己写,思路还是要明白,基本上就是取得iframe属性src所指定的包含文档中内容的高度,然后用来设置iframe自身的高度,在iframe所在页面载入时对页面中的所有需要自适应高度的iframe进行自动设置,省时省力,如果确定页面中全部iframe都需要自适应高度,直接取得iframe数组给代码,就连ID都不用自己写了,完成程序搞定。(代码贴上来:)
网上有人改进了方法,解决了当iframe所包含文档内容高度动态变化时自动调整iframe高度的问题,原理是在iframe所在页面不断扫描iframe包含文档的内容高度并改变iframe自身高度,这种方法貌似解决了问题,但是对页面速度和系统资源占用是否有影响还很难说,感觉方法有些偏执,应该有更好的解决方法。
第四种方法,只针对知道的iframe的ID调用 不推荐
-
function iframeAutoFit(iframeObj){
-
setTimeout(function(){if(!iframeObj) return;iframeObj.height=(iframeObj.Document?iframeObj.Document.body.scrollHeight:iframeObj.contentDocument.body.offsetHeight);},200)
-
}
使用方法呢,大家在需要自适应的iframe上加个id,然后js执行就可以了