iframe高度自适应,兼容IE,FF [转]

2008-06-18 10:04:36

这个还不错,收藏一个。 有时在项目中会遇到通过在页面中采用iframe的方式include其它页面,这时就会考虑不要因出现滚动条而影响页面效果,但include页面的内容高度是未知的,所以大家都会利用javascript来解决这个问题。 在网上曾看见过解决此问题的代码,不过拷贝到本地进入调试时有些不正常,在IE下无法正确获得嵌套页面的高度,通过各种尝试,最终代码如下:[html]<script type=&#34;text/javascript&#34;> function SetCwinHeight(iframeObj){ if (document.getElementById){ if (iframeObj &amp;&amp; !window.opera){ if (iframeObj.contentDocument &amp;&amp; iframeObj.contentDocument.body.offsetHeight){ iframeObj.height = iframeObj.contentDocument.body.offsetHeight; }else if(document.frames[iframeObj.name].document &amp;&amp; document.frames[iframeObj.name].document.body.scrollHeight){ iframeObj.height = document.frames[iframeObj.name].document.body.scrollHeight; } } } } </script> <iframe width=&#34;100%&#34; name=&#34;frameContent&#34; onload=&#34;SetCwinHeight(this)&#34; frameborder=&#34;0&#34; src=&#34;*&#34;></iframe>[/html] 扩展: 在一个页面含有某个iframe,其id=&#34;myframe&#34; name=&#34;myframe&#34;,此时使用document.getElementById(&#34;myframe&#34;)取到的是iframe标签对象,通过该对象可以获取iframe的各个属性,例如src、frameborder、style等等,但是不能获取到iframe所包含的子页面的各个对象。如果使用document.frames(&#34;myframe&#34;)取到的是iframe组件对象,通过该对象可以获取到iframe所包含的页面的子页面的各个对象,例如子页面的window对象,但是不能获得iframe标签得各个属性,例如上面说到的src等等。