什么是document.body?
返回当前文档中的<body>元素或者
document.body
是包含当前页面内容的元素,对于拥有 <body>
元素的文档来说,返回的是 <body>
元素,对于一个拥有 <frameset>
元素的文档来说,返回的是最外层的 <frameset>
元素.
该属性是 可写 的,且为该属性赋的值必须是一个<body>元素.
什么是document.documentElement?
是一个会返回文档对象(document)的根元素的只读属性(如HTML文档的 <html> 元素)。
所有主要浏览器都支持 documentElement
属性,可以使用 document.documentElement
来获取根元素。
document.body与document.documentElement实际应用区别:
获取 scrollTop
的差异:
-
在 chrome 下获取
scrollTop
只能通过document.body.scrollTop
(不管DTD是否存在)。 -
在 Firefox 下,若页面存在
DTD
,则使用document.documentElement.scrollTop
获取滚动条距离,反之则采用document.body.scrollTop
获取。 -
在 Safari 下,有自己获取
scrollTop
的函数window.pageYOffset
。 -
在 IE 下,若页面存在
DTD
,则使用document.documentElement.scrollTop
获取滚动条距离,反之则采用document.body.scrollTop
或document.documentElement.scrollTop
都可以获取。
总而言之,有 DTD
时用document.documentElement
,无则用document.body
。
兼容写法:
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;