document.compatMode浅谈动态绑定api

本文详细介绍了如何在不同兼容模式下获取网页的视觉区域宽高,并通过自定义函数实现动态绑定,节约代码复用。重点突出在不声明DOCTYPE的情况下,IE浏览器的默认兼容模式为QuirksMode,以及如何根据document.compatMode来正确获取视觉区域的尺寸。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

document.compatMode返回的值

 

 

  • BackCompat-----------------------Quirks Mode
  • CSS1Compat----------------------Standards Mode (标准兼容模式)

在不声明Doctype的情况下,IE默认是Quirks Mode


1. 当document.compatMode 为BackCompat时,浏览器视觉区域的宽度document.body.clientWidth
2. 当document.compatMode 为Standards Mode时,浏览器视觉区域的宽度document.documentElement.clientWidth

/*
获取页面视觉区域的宽度
思路需要判断当前的document.compatMode
*/
getViewWidth: function(){
         var doc = document,
               client = doc.compatMode == 'BackCompat' ? doc.body : doc.documentElement;
        return client.clientWidth;
}
 

/*
获取页面视觉区域的高度
思路和上面一致
*/
getViewHeight = function(){
     var doc = document,
           client = doc.compatMode == 'BackCompat' ? doc.body : doc.documentElement;
     return client.clientHeight;
}
 
/*
仿照使用$.each----动态绑定 节约复用
*/
$.each(['Width','Height'],function(i,v){
      jQuery.fn['getView'+v] = function(){
                  var doc = document,
                        client = doc.compatMode == 'BackCompat' ? doc.body :                               doc.documentElement;
                  var type = 'client'+v;
                  return client[type];
      }
});
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值