首页 > 开发 > 综合 > 正文

框架:document.compatMode

2024-07-21 02:04:38
字体:
来源:转载
供稿:网友

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

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

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

document.compatmode正好派上用场,它有两种可能的返回值:backcompat和css1compat。

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;
}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表