document.compatMode有两种取值:
BackCompact:标准兼容模式关闭
CSS1Compact:标准兼容模式开启
我用IE11的开发者工具简单测试了一下,发现了这么几点
1,IE7-IE9默认都是CSS1Compat,只有在IE10和IE11,以及Firefox和Chrome中根据是否有DOCTYPE声明判断,有则为CSS1Compact,无则为BackCompact.
2,document.body.clientHeight和document.documentElement.clientHeight,如果不是特别精细容许十几px就不用太追究,直接用documentElement.
3,document.body.scrollTop,document.documentElement.scrollLeft&&document.documentElement.scrollTop,document.documentElement.scrollLeft
即使开启标准兼容模式,依然需要在每次用到时检验到底是body还是documentElement.
一条好习惯就是每个html文档都要有doctype声明,开启标准兼容模式,其他都是用documenElement.
如果精确到px,那就要自己仔细测了!
测试代码:
var cw1=document.body.clientWidth;
var cw2=document.documentElement.clientWidth;
var ch1=document.body.clientHeight;
var ch2=document.documentElement.clientHeight;
var sw1=document.body.scrollWidth;
var sw2=document.documentElement.scrollWidth;
var sh1=document.body.scrollHeight;
var sh2=document.documentElement.scrollHeight;
var st1=document.body.scrollTop;
var st2=document.documentElement.scrollTop;
var sl1=document.body.scrollLeft;
var sl2=document.documentElement.scrollLeft;
console.log(document.compatMode);
console.log(cw1+","+cw2);
console.log(ch1+","+ch2);
console.log(sw1+","+sw2);
console.log(sh1+","+sh2);
console.log(st1+","+st2);
console.log(sl1+","+sl2);