document.documentelement代替document.body来获取我们想要的结果 将代码中的document.body替换为document.documentelement,再来看看各浏览器下的实际结果:
ii测试结果表明,ie系列浏览器对document.documentelement属性的解释是正确的,其它标准浏览器将offsetheight解释成 了scrollheight。火狐和netscape更是把这两个属性调换了过来。不过总的来说各属性都可以有个相应的解释,不会像 document.body一样只有可怜的两种
这是domdocument对象里的body子节点和整个节点树的根节点root。
dom把层次中的每一个对象都称之为节点,就是一个层次结构,你可以理解为一个树形结构,就像我们的目录一样,一个根目录,根目录下有子目录,子目录下还有子目录。
以html超文本标记语言为例:整个文档的一个根就是<html>,在dom中可以使用document.documentelement来访问它,它就是整个节点树的根节点。而body是子节点,要访问到body标签,在脚本中应该写:document.body。
它们的区别
document.documentelement仅仅只是一个标准的dom对象
document.body是对body元素的一个引用,等同于document.getelementsbytagname('body')[0]
w3c 的标准
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> ,
而我调试时都没有加这一行. 这行代码就是定义网页是否遵循w3c标准的,自然js和css教程以及html都得遵循其标准,而在标准里没有这两个对象. 调用这两个对象需要用document.documentelement 来代替.
后来经过一些测试还发现了 document.body 对象必须在 body 内容加载完才有值,而 document.documentelement 对象则在访问时就存在了. 当遵循标准时如果要访问body对象时 document.body window.body就会失效,相反 document.documentelement 就会失效. 不知道其它对象在标准下还会不会有另一套,一直找不到个象样的网页特效手册