今天查资料时无意发现一个以前没有注意到过的属性:document.compatmode
经过一番资料的查询后,了解到以下信息:
我们都知道ie有两种盒子模型,在不声明 !doctype 时是混杂模式 (quirks mode),在声明了 !doctype 时与其他标准浏览器一致,是标准模式 (standards mode)
document.compatmode 有两个属性值:
backcompat ----- 表示标准规范模式关闭,即当前为混杂模式 (quirks mode),此时浏览器客户区宽度为 document.body.clientwidth
css1compat ---- 表示标准规范模式开启,即当前为标准模式 (standards mode),此时浏览器客户区宽度为 document.documentelement.clientwidth
下面贴一份 准确获取网页客户区的宽高、滚动条宽高、滚动条left和top 的代码
1 if (document.compatmode == backcompat)
{ 2 cwidth = document.body.clientwidth; 3
cheight = document.body.clientheight; 4
swidth = document.body.scrollwidth; 5 sheight = document.body.scrollheight; 6
sleft = document.body.scrollleft; 7 stop = document.body.scrolltop; 8 }
else { //document.compatmode == css1compat 9 cwidth = document.documentelement.clientwidth;10
cheight = document.documentelement.clientheight;11 swidth = document.documentelement.scrollwidth;12
sheight = document.documentelement.scrollheight;13
sleft = document.documentelement.scrollleft == 0 ?
document.body.scrollleft : document.documentelement.scrollleft;14
stop = document.documentelement.scrolltop == 0 ?
document.body.scrolltop : document.documentelement.scrolltop;15 }
以上就是js中的属性:document.compatmode的详细内容。