一。document.compatMode
意思:

      IE对盒模型的渲染在 Standards ModeQuirks Mode是有很大差别的,在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样,但在Quirks Mode模式下则有很大差别,而在不声明Doctype的情况下,IE默认又是Quirks Mode。所以为兼容性考虑,我们可能需要获取当前的文档渲染方式。docuemnt.compatMode有两种返回值:BackCompatCSS1Compat。当IE处在Quirks Mode时,返回值是BackCompat;当IE处于Standards Mode时,返回值是CSS1Compat。因此,我们可以根据document.compatMode的值来判断文档是否加了标准声明。

用法:可以用这个来判断是用document.documentElement还是用document.body

二。 document.documentElement和document.body
     在html4下document.documentElement和document.body都是指文档的根节点(<html>节点),当用!DOCTYPE声明为xhtml时,根节点<html>用document.documentElement来访问,<body>节点用document.body来访问。
      1、当文档有了标准声明,IE6在页面内容超出窗口大小时将宽度属性scrollWidth、clientWidth、offsetWidth都解释为内容实际宽度。比如我们用document.body.clientHeight原本想取得“页面可见区域高度”,可实际上返回的是“页面实际内容高度”。这时,我们可以用document.documentElement代替document.body来获取我们想要的结果,将代码中的document.body替换为document.documentElement,再来看看各浏览器下的实际结果:

ii 测试结果表明,IE系列浏览器对document.documentElement属性的解释是正确的,其它标准浏览器将offsetHeight解释成 了scrollHeight。火狐和netscape更是把这两个属性调换了过来。不过总的来说各属性都可以有个相应的解释。

        2、文档有了标准声明时,用document.body.scrollTop会失效,总显示为0,使用document.documentElement.scrollTop,才会获得正确的值。相反,如果不做标准声明的话,document.documentElement.scrollTop反而会显示为0。