今天在使用encharts的時候因爲要兼容IE8,因此最終決定在非IE8瀏覽器使用encharts,在IE8使用amcharts。因而須要使用JS判斷使用的瀏覽器版本:chrome
function IEVersion() { var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字符串 var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判斷是否IE<11瀏覽器 var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判斷是否IE的Edge瀏覽器 var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1; if(isIE) { var reIE = new RegExp("MSIE (\\d+\\.\\d+);"); reIE.test(userAgent); var 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瀏覽器 } }
返回值類型:瀏覽器
值 | 值類型 | 值說明 |
-1 | Number | 不是ie瀏覽器 |
6 | Number | ie版本<=6 |
7 | Number | ie7 |
8 | Number | ie8 |
9 | Number | ie9 |
10 | Number | ie10 |
11 | Number | ie11 |
'edge' | String | ie的edge瀏覽器 |
經過進一步的封裝能夠返回boolean值類型是不是IE8如下瀏覽器:ide
function IEVersion() { var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字符串 var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判斷是否IE<11瀏覽器 var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判斷是否IE的Edge瀏覽器 var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1; if (isIE) { var reIE = new RegExp("MSIE (\\d+\\.\\d+);"); reIE.test(userAgent); var 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瀏覽器 } } var sureIsIEAndLower8 = function() { var version = IEVersion(); if (-1 == version) { return false; } else if (8 < version || "edge" == version) { return false; }else{ return true; } }
返回true表示是IE8以及IE8如下瀏覽器,返回false表示不是IE或者是IE8以上。測試
補充今天在翻閱jQueryAPI的時候發現jQuery自帶檢測瀏覽器內核的方法:spa
例如個人測試:3d
alert( JSON.stringify($.browser));
alert( $.browser.version );
結果:code
chrome:blog
IE11:WC--IE11用的火狐的引擎字符串
:string
IE10:(microsoft internet explorer
火狐: