法一:通过该方法你会惊奇的发现IE11的内核竟然是Mozilla内核,所以不能判断IE11。
function JudgeBroswer() {
if ($.browser.msie) {
alert("this is msie!");//IE
}
else if ($.browser.safari) {
alert("this is safari!");//Safari
}
else if ($.browser.mozilla) {
alert("this is mozilla!"); //Firefox
}
else if ($.browser.opera) {
alert("this is opera"); //Opera
}
}
var userAgent = navigator.userAgent.toLowerCase();
// Figure out what browser is being used
jQuery.browser = {
version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
safari: /webkit/.test(userAgent),
opera: /opera/.test(userAgent),
msie: /msie/.test(userAgent) && !/opera/.test(userAgent),
mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
};
// userAgent判断IE浏览器版本
function getIEVersion() {
var userAgent = navigator.userAgent;
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1;
var isEdge = (userAgent.indexOf("Edge") > -1 || userAgent.indexOf("Edg") > -1) && !isIE;
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 0; //EDGE
} else if (isIE11) {
return 11;
} else {
return -1;
}
}
注意:
Query 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是$.support 方法
法二:兼容性非常好,从11到7都可以判断
if (window.ActiveXObject || "ActiveXObject" in window) {
alert("这是ie浏览器");
}
法三、document.all表示页面内所有元素的一个集合。该方法不支持IE11。
if (document.all) {
alert("IE");
} else {
alert("not ie");
}
法四:不支持IE11
var navigatorName = "Microsoft Internet Explorer";
if( navigator.appName == navigatorName ){
alert("ie")
}else{
alert("not ie")
}
法五、利用了IE与标准浏览器在处理数组的toString方法的差异.对于标准游览器,如果数组里面最后一个字符为逗号,JS引擎会自动剔除它。不支持IE11。
if(!+[1,])alert("这是ie浏览器");
else alert("这不是ie浏览器");