js判断ie版本以及怪异模式,纯JS,可封装组件。

js判断ie版本以及怪异模式,纯JS,可封装组件。


var Brower = function checkIE(){
	// 判断是否为IE
	var isIE = navigator.userAgent.toLocaleLowerCase().indexOf('msie') !== -1;

	// 判断是否为IE5678
	var isLteIE8 = isIE && !+[1,];


	// 用于防止因通过IE8+的文档兼容性模式设置文档模式,导致版本判断失效
	var dm = document.documentMode, 
	  isIE5, isIE6, isIE7, isIE8, isIE9, isIE10, isIE11;
	if (dm){
	  isIE5 = dm === 5;
	  isIE6 = dm === 6;
	  isIE7 = dm === 7;
	  isIE8 = dm === 8;
	  isIE9 = dm === 9;
	  isIE10 = dm === 10;
	  isIE11 = dm === 11;
	}else{
		// 判断是否为IE5,IE5的文本模式为怪异模式(quirks),真实的IE5.5浏览器中没有document.compatMode属性
		isIE5 = (isLteIE8 && (!document.compatMode || document.compatMode === 'BackCompat'));

	  // 判断是否为IE6,IE7开始有XMLHttpRequest对象
	  isIE6 = isLteIE8 && !isIE5 && !XMLHttpRequest;

	  // 判断是否为IE7,IE8开始有document.documentMode属性
	  isIE7 = isLteIE8 && !isIE6 && !document.documentMode;

	  // 判断是否IE8
	  isIE8 = isLteIE8 && document.documentMode;

	  // 判断IE9,IE10开始支持严格模式,严格模式中函数内部this为undefined
	  isIE9 = !isLteIE8 && (function(){
	    "use strict";
	      return !!this;
	  }());

	  // 判断IE10,IE11开始移除了attachEvent属性
	  isIE10 = isIE && !!document.attachEvent && (function(){
	    "use strict";
	      return !this;
	  }());
		
	  // 判断IE11
	  isIE11 = isIE && !document.attachEvent;
	}

	return {
		//怪异模式
		isQuirks: document.compatMode !== 'CSS1Compat',
		isIE : isIE,
		isIE5 : isIE5,
		isIE6 : isIE6,
		isIE7 : isIE7,
		isIE8 : isIE8,
		isIE9 : isIE9,
		isIE10 : isIE10,
		isIE11 : isIE11
	}
}();

/**
 * Demo应用
 * @如果是ie9以下版本或者怪异模式,一律return false。
*/
if(Brower.isIE5 || Brower.isIE6 || Brower.isIE7 || Brower.isIE8 || Brower.isIE9 || (Brower.isIE && Brower.isQuirks))return false;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值