当我想检测IE时,我使用以下代码:
function getInternetExplorerVersion()
{
var rv = -1;
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
function checkVersion()
{
var msg = "You're not using Internet Explorer.";
var ver = getInternetExplorerVersion();
if ( ver > -1 )
{
msg = "You are using IE " + ver;
}
alert( msg );
}
但是IE11返回“您没有使用Internet Explorer”。我如何检测它?
用这个检测大多数浏览器:
var getBrowser = function(){
var navigatorObj = navigator.appName,
userAgentObj = navigator.userAgent,
matchVersion;
var match = userAgentObj.match(/(opera|chrome|safari|firefox|msie|trident)\/?\s*(\.?\d+(\.\d+)*)/i);
if( match && (matchVersion = userAgentObj.match(/version\/([\.\d]+)/i)) !== null) match[2] = matchVersion[1];
//mobile
if (navigator.userAgent.match(/iPhone|Android|webOS|iPad/i)) {
return match ? [match[1], match[2], mobile] : [navigatorObj, navigator.appVersion, mobile];
}
// web browser
return match ? [match[1], match[2]] : [navigatorObj, navigator.appVersion, '-?'];
};
https://gist.github.com/earlonrails/5266945
仅适用于IE浏览器:
var ie = 'NotIE'; //IE5-11, Edge+
if( !!document.compatMode ) {
if( !("ActiveXObject" in window) ) ) ie = 'EDGE';
if( !!document.uniqueID){
if('ActiveXObject' in window && !window.createPopup ){ ie = 11; }
else if(!!document.all){
if(!!window.atob){ie = 10;}
else if(!!document.addEventListener) {ie = 9;}
else if(!!document.querySelector){ie = 8;}
else if(!!window.XMLHttpRequest){ie = 7;}
else if(!!document.compatMode){ie = 6;}
else ie = 5;
}
}
}
使用alert (ie);
测试:
var browserVersionExplorer = (function() {
var ie = '<s>NotIE</s>',
me = '<s>NotIE</s>';
if (/msie\s|trident\/|edge\//i.test(window.navigator.userAgent) && !!(document.documentMode || document.uniqueID || window.ActiveXObject || window.MSInputMethodContext)) {
if (!!window.MSInputMethodContext) {
ie = !("ActiveXObject" in window) ? 'EDGE' : 11;
} else if (!!document.uniqueID) {
if (!!(window.ActiveXObject && document.all)) {
if (document.compatMode == "CSS1Compat" && !!window.DOMParser ) {
ie = !!window.XMLHttpRequest ? 7 : 6;
} else {
ie = !!(window.createPopup && document.getElementById) ? parseFloat('5.5') : 5;
}
if (!!document.documentMode && !!document.querySelector ) {
ie = !!(window.atob && window.matchMedia) ? 10 : ( !!document.addEventListener ? 9 : 8);
}
} else ie = !!document.all ? 4 : (!!window.navigator ? 3 : 2);
}
}
return ie > 1 ? 'IE ' + ie : ie;
})();
alert(browserVersionExplorer);
2017年6月1日更新
现在我们可以用一些更简单的东西:
var uA = window.navigator.userAgent,
onlyIEorEdge = /msie\s|trident\/|edge\//i.test(uA) && !!( document.uniqueID || window.MSInputMethodContext),
checkVersion = (onlyIEorEdge && +(/(edge\/|rv:|msie\s)([\d.]+)/i.exec(uA)[2])) || NaN;