框架:document.compatMode

暖日晶晶

暖日晶晶

2016-02-20 00:58

下面图老师小编要向大家介绍下框架:document.compatMode,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

今天在看框架的时候无意间看到了document.compatMode,经过一番资料查找,终于搞懂了。

文档模式在开发中貌似很少用到,最常见的是就是在获取页面宽高的时候,比如文档宽高,可见区域宽高等。

IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样,但在Quirks Mode模式下则有很大差别,而在不声明Doctype的情况下,IE默认又是Quirks Mode。所以为兼容性考虑,我们可能需要获取当前的文档渲染方式。

document.compatMode正好派上用场,它有两种可能的返回值:BackCompat和CSS1Compat。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

BackCompat:标准兼容模式关闭。浏览器客户区宽度是document.body.clientWidth;CSS1Compat:标准兼容模式开启。 浏览器客户区宽度是document.documentElement.clientWidth。

那么写了个准确获取网页客户区的宽高、滚动条宽高、滚动条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;
}

展开更多 50%)
分享

猜你喜欢

框架:document.compatMode

Web开发
框架:document.compatMode

document.open() 与 document.write()的区别

Web开发
document.open() 与 document.write()的区别

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

document 和 document.all 分别什么时候用

Web开发
document 和 document.all 分别什么时候用

Open and Print a Word Document

Web开发
Open and Print a Word Document

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Add a Table to a Word Document

Web开发
Add a Table to a Word Document

css教程:css和document

Web开发
css教程:css和document

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

qq空间怎么克隆

qq空间怎么克隆

JS教程:匿名函数

JS教程:匿名函数
下拉加载更多内容 ↓