方法一:
使用document.documentMode进行判断,即表示当前文档格式,只有IE内核浏览器才支持。
//IE11返回11,IE10返回10,IE9返回9,IE8返回8,IE7返回7,IE6返回6function 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。