首先,判断是否是IE浏览器,有如下两种方式:
第一种,通过userAgent信息来判断
- if(navigator.userAgent.indexOf("MSIE")>0){
-
- }
第二种:通过ActiveXObject这个IE浏览器专有对象来判断
- if(!!window.ActiveXObject){
-
- }
然后,判断在IE浏览器运行环境中的IE版本(6,7,8,9,10等)
在这之前我们先来了解两个对象:
第一个对象:document.documentMode这个东西是IE渲染文档模式;IE6和IE7不识别,控制台会输出undefined,IE8及以上才支持识别,控制台会输出对应版本:8,9,10,11。
第二个对象:window.XMLHttpRequest,在IE7及以上才支持。
我们会用到这两个东西的,闲话不多说,直接上表达式:
-
- var isIE6 = !!window.ActiveXObject && !window.XMLHttpRequest;
-
- if(navigator.userAgent.indexOf("MSIE 6.0")>0){
- alert("ie6");
- }
-
- if(navigator.userAgent.indexOf("MSIE 7.0")>0){
- alert("ie7");
- }
-
-
- if(!!window.ActiveXObject && document.documentMode==8){
- alert("ie8");
- }
-
-
- if(!!window.ActiveXObject && document.documentMode==9){
- alert("ie8");
- }
-
-
- if(!!window.ActiveXObject && document.documentMode==10){
- alert("ie8");
- }
通过以上判断,您也可以组合延伸出其他的一些用法:
- if(!!window.ActiveXObject && !document.documentMode){
- alert("ie版本小于8");
- }
-
- if(!!window.ActiveXObject && (!document.documentMode||document.documentMode<9)){
- alert("ie版本小于9");
- }
-
- if(!!window.ActiveXObject && (!document.documentMode||document.documentMode<10)){
- alert("ie版本小于10");
- }
-
- if(!!window.ActiveXObject && !!document.documentMode){
- alert("ie版本大于等于8");
- }
-
- if(!!window.ActiveXObject && document.documentMode>8){
- alert("ie版本大于8");
- }