document.compatMode主要是用来判断浏览器采用何种方式渲染,它有两种可能的返回值:BackCompatCSS1Compat,官方对其解释如下:

BackCompat:标准兼容模式关闭,向后兼容模式。
CSS1Compat:标准兼容模式开启。
当document.compatMode等于BackCompat时,浏览器客户区宽度是document.body.clientWidth;
当document.compatMode等于CSS1Compat时,浏览器客户区宽度是document.documentElement.clientWidth。
浏览器客户区高度、滚动条高度、滚动条的Left、滚动条的Top等等都是上面的情况。

一个准确获取网页客户区的宽高、滚动条宽高、滚动条Left和Top的代码:

 if (document.compatMode == "BackCompat") {
cWidth = document.body.clientWidth;
cHeight = document.body.clientHeight;
sWidth = document.body.scrollWidth;
sHeight = document.body.scrollHeight;
sLeft = document.body.scrollLeft;
sTop = document.body.scrollTop;
}
else {
//document.compatMode == "CSS1Compat"
cWidth = document.documentElement.clientWidth;
cHeight = document.documentElement.clientHeight;
sWidth = document.documentElement.scrollWidth;
sHeight = document.documentElement.scrollHeight;
sLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft;
sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop;
}

(以上代码兼容目前流行的全部浏览器,包括:IE、Firefox、Safari、Opera、Chrome)

最新文章

  1. STM32正交编码器驱动电机
  2. BZOJ4527: K-D-Sequence 线段树
  3. 那些年我们一起追过的Linux命令
  4. 10.23lamp环境
  5. jsoncpp用法通俗易懂之解析
  6. Log4J配置文件说明
  7. SQL注入攻击
  8. HDU2037 今年暑假不AC 贪心算法
  9. C# Attribute
  10. linux shell在while中用read从键盘输入
  11. NET中级课--浅谈委托,事件,异步调用,回调等概念
  12. Appium自动化测试之Appium的安装与配置
  13. Linq to SQL -- Group By、Having和Exists、In、Any、All、Contains
  14. react 环境安装
  15. debian 系统安装配置apache
  16. ERROR 1067 (42000): Invalid default value for 'created_time'【转】
  17. MySql NDB cluster replication配置
  18. 解决jenkins的内存溢出问题
  19. Java常考面试题(一)
  20. CentOS中Intel i350T4驱动安装

热门文章

  1. HDU 5172
  2. 关于synchronized与volatile的一点认识
  3. 数据挖掘算法学习(一)K-Means算法
  4. Constraint.constant动画效果
  5. XTU1201:模和除
  6. linux中设置TAB键的宽度
  7. ZOJ 3633 Alice's present RMQ
  8. 怎样删除 Windows.old 目录
  9. FC 网络
  10. 杂项-Java:Spring Cloud