方法一:
使用document.documentMode进行判断,即表示当前文档格式,只有IE内核浏览器才支持。
//IE11返回11,IE10返回10,IE9返回9,IE8返回8,IE7返回7,IE6返回6
function IEVersion () {
if (document.documentMode) return document.documentMode;
}
if (IEVersion()) {
console.log('当前IE浏览器版本号是', IEVersion());
} else {
console.log('当前浏览器可能不是IE浏览器');
}
方法二:
1.js的全局对象window子属性navigator.userAgent,这个属性是包含了浏览器信息的相关信息,包括我们需要的浏览器内核,navigator.userAgent这个值取出来是个字符串,可以通过string的 indexOf方法或者正则匹配来验证关键字符串。
2.对比每个版本的信息。
ie11的userAgent
edge的userAgent
ie9的userAgent
ie8的userAgent
function IEVersion() {
// if (document.documentMode) return document.documentMode;
let userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
let isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
let isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
let isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if(isIE) {
let reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
let fIEVersion = parseFloat(RegExp["$1"]);
if(fIEVersion == 7) {
return 7;
} else if(fIEVersion == 8) {
return 8;
} else if(fIEVersion == 9) {
return 9;
} else if(fIEVersion == 10) {
return 10;
} else {
return 6;//IE版本<=7
}
} else if(isEdge) {
return 'edge';//edge
} else if(isIE11) {
return 11; //IE11
}else{
return -1;//不是ie浏览器
}
}
注:在一些老系统老版本IE浏览器,IE版本标志为edge的,获取到的版本号也为11。