document.documentElement
对于任何非空HTML文档,始终是一个<html>
元素。
document.body
是包含文档内容的元素。在具有<body>
内容的文档中,返回<body>
元素,在框架集文档中,这返回最外面的<frameset>元素(不再推荐使用此功能)
概括:document.body
返回html dom中的body节点 —<body>
document.documentElement
返回html dom中的root节点—<html>
两者获取值时也会有差别,例如:scrollTop
滚动条在Y轴上的滚动距离
一、页面存在文档类型声明<!DOCTYPE html>
-
chrome
通过document.documentElement.scrollTop
获取scrollTop
,document.body.scrollTop为0(好像五十几之前的版本只能通过document.body
来获取,且文档存在不存在都不影响) -
FF、IE
也通过document.documentElement
来获取scrollTop
,document.document.body.scrollTop获取的为0
二、页面不存在DTD
-
chrome
通过document.body.scrollTop
获取,document.documentElement.scrollTop为0 -
IE
两者均可获得且值相等 -
FF
同理chrome
兼容解决方案
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop
网友评论