在火狐中运行的javascript,可以使用document.height来测试(获得)文档的实际高度。而在IE中,这个高度要通过document.documentElements.scrollHeight来获得。其实对于宽度来说,也很相似。
这个属性非常有用。现在,我们经常通过框架集或内含框架(FrameSet与IFrame)来实现页面,这是为了用户点击操作时,尽量少的刷新整个页面,这对于页面中同时含有列表、编辑等多种功能的页面很有用;也可以实现类似博客中国的这个编辑器的类似功能。而框架的高度自适应,则是这个风格的页面中常用的技术。
可以编写一些在各个浏览器中通用的javascript,以使页面适应不同的用户需求。
为了兼容IE的5.0以前的版本,可以使用一小段javascript:
<script language="javascript">
<!--
if (!document.getElementById) {
if (document.all) {
document.getElementById = function(id) {
return document.all[id];
}
}
}
-->
</script>
这样,在这段脚本后面使用document.getElementById就可以兼容旧版本的IE了。
至于iframe自适应高度的方法,有很多。比如有的人编写了段脚本,可以在文档完全载入后将几个iframe的高度同时设置为完全显示的高度。我的方法是,编写一个设置高度的函数,将函数名、iframe的ID作为参数传递给iframe的src(如果有必要的话),然后再在src的onload事件中回调。例如:
<script language="javascript">
<!--
function page_load() {
var parent = window.parent;
if (typeof parent == "unassigned" || parent == null)
return;
if (typeof parent.setHeight == "function") {
var h;
h = document.height ? document.height :
document.documentElement.scrollHeight;
parent.setHeight("fra", h);
}
}
-->
</script>
这个函数就是利用了父窗体的函数来设置自己在父窗体中的高度。同样的,父、子窗体的其他交互也可以使用类似的方法实现。
窗体元素——比如<div>、<iframe>等的显示、隐藏,可以通过设置它的display或者visibility来实现。如果设置了obj.style.display="none",则此obj完全消失;如果设置了obj.style.visibility="hidden",则obj不可见,但窗口上仍然为obj保留了原来大小的空间。
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=4680617