document.compatMode用来判断当前浏览器采用的渲染方式。

document.compatMode属性值:

BackCompat:标准兼容模式关闭。
CSS1Compat:标准兼容模式开启。

当document.compatMode等于BackCompat时,浏览器客户区宽度是document.body.clientWidth;
当document.compatMode等于CSS1Compat时,浏览器客户区宽度是document.documentElement.clientWidth。

浏览器客户区高度(clientHeight)、滚动条高度(scrollHeight)、滚动条的Left(scrollLeft)、滚动条的Top(scrollTop)等等都是上面的情况。

下面是demo:准确获取网页客户区的宽高、滚动条宽高、滚动条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;//滚动条的Left
sTop = document.body.scrollTop;//滚动条的Top
}
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;
}

简单点来说:
var pageWidth=window.innerWidth,
pageHeight=window.innerHeight;
if(typeof pageWidth!='number'){
    if(document.compatMode=='CSS1Compat'){
    pageWidth=document.documentElement.clientWidth;
    pageHeight=document.documentElement.clientHeight;
    }
    else{
    pageWidth=document.body.clientWidth;
    pageHeight=document.body.clientHeight;
    }

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

转载于:https://www.cnblogs.com/wuxn/p/4874536.html

document.compatMode属性相关推荐

  1. document.compatMode

    今天看到了document.compatMode属性,平时对文档模式不是很了解,于是test了这个属性. document.compatMode的值有两种,分别为"BackCompat&qu ...

  2. 【javascript】DOM操作方法(3)——document节点属性

    document.doctype //document.documentElement //来获取html元素 document.defaultView //返回document对象所在的window ...

  3. document.compatMode的CSS1compat

    document.compatMode BackCompat:标准兼容模式关闭.浏览器宽度:document.body.clientWidth: CSS1Compat:标准兼容模式开启. 浏览器宽度: ...

  4. javascript:document的属性和方法,title,innerHTML,

    document.titile="简介";  //修改文档的标题为"简介" document.body.innerHTML="<p>doc ...

  5. 关于js里的document.compatmode

    document.compatmode为获取页面的渲染模式. 其中有两个渲染模式 1.CSS1Compat(标准模式).浏览器宽度:document.documentElement.clientHei ...

  6. JavaScript window.document的属性、方法和事件小结

    javascript中window.document的属性.方法和事件的总结,有需要的朋友可参考一下本文章. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的 ...

  7. 【JavaScript】document对象属性

    document对象中,并没有特别的事件,它所支持的都是通用的. 在document上讲解这些属性不具有典型性,但只要掌握了一个对象 在某个事件上的处理方式,也就自然的掌握了在其它对象上处理这个 事件 ...

  8. JavaScriptjQuery.document对象属性和方法

    document对象属性和方法 document对象代表浏览器当面窗口或标签中载入的页面. 它的常用属性有: 属性                                           ...

  9. document.compatMode介绍

    document.compatMode 检查当前的文档渲染模式 返回值:BackCompat和CSS1Compat: IE对两种模式渲染差别很大: BackCompat: Standards-comp ...

最新文章

  1. 一文详解基于先验地图的视觉定位
  2. mysql collectset_005.hive列转行 (collect_set() 去重)
  3. iOS之深入解析Xcode编译运行的原理与应用
  4. Linux学习笔记 文件读写小细节
  5. Microsoft Tech Summit 2018 课程简述:利用 Windows 新特性开发出更好的手绘视频应用...
  6. Qt自定义对话框中边框阴影实现
  7. 关于NOR FLASH地址左右移的问题
  8. 2021年南宁二中高考成绩查询,2021广西高考圆满结束,6月23日可查询成绩
  9. C/C++工程师需要掌握哪些技能?他们的工资这么高,是有原因的!
  10. JS 全局变量、局部变量(与其他语言不太一样)
  11. Gazebo仿真平台
  12. vue.js点击更多加载更多数据,双数组合并
  13. 网盘用户分享独播剧链接 百度未及时封禁一审被判赔偿百万余元
  14. 历时 7 天,我把一万行 Scala 代码移植到了 Kotlin 上!
  15. 委托、事件--委托介绍篇
  16. aspx转为html5,保存ASPX 生成的html代码
  17. LFW人脸数据库的简介
  18. 音乐计算机锦鲤抄,十首古风歌曲,锦鲤抄上榜,哪一首是你心目中的古风“神曲”?...
  19. 【Digger爬虫系列】用Digger抓取taptap游戏排行榜
  20. MCE公司:你所不知道的 MCE--光反应赖氨酸的高难度合成

热门文章

  1. mysql给字段设置默认值,以及mysql的严格模式
  2. java数组转换成字符串,附小技巧
  3. python【蓝桥杯vip练习题库】BASIC-18 矩形面积交(线段交)
  4. python如何扩展库_python的常用扩展库以及使用方式
  5. 管家婆有未记账的凭证怎么办_管家婆常见问题
  6. python链表的创建_Python——新建链表
  7. 子网划分为什么全0全1子网号不能使用?CIDR为什么能使用全0全1子网号?
  8. 原创文章收录不高从根源找问题
  9. 影响SEO网站文章收录的因素有哪些?
  10. 东芝2505扫描软件_东芝P300机械硬盘上膛体验:内存大了,小姐姐再也不愁无处安放了...