使用JS判断浏览器版本其实并不复杂,只是在判断IE浏览器时判断IE浏览器各个版本时需要花点心思。
1.使用判断浏览器USER_AGENT的方法判断出IE浏览器的情况下,在此基础上再判断其版本。
2.判断IE6、IE9、IE11的方法稍微特殊点。IE9及以上的版本alert(!-[1,])返回的是false,并且,IE9+是支持addEventListener的,但是IE11浏览器中是不支持原来IE中独有的事件绑定attachEvent。根据这些特性,可区分IE9和IE11.
当然,还可以利用其他特性来区分IE的各个版本,例如,可参考该链接 http://www.5ycode.com/353。
此外,就属360浏览器的判断稍麻烦了。因为,360浏览器在3Q大战之后,开始使用IE浏览器的内核,现在又变成使用谷歌浏览器的的内核,目前跟谷歌浏览器的区别在于谷歌的webkitPersistentStorage是独立的,也因为这个谷歌可能无法正常看优酷的视频,而360可以,区别就在于二者的webkitPersistentStorage不同。
参考代码如下
//判断浏览器版本
$(function () {
var explorer = window.navigator.userAgent;
var vesion = "";
//ie
if (explorer.indexOf("MSIE") >= 0) {
vesion = "IE";
num = IEVesion();
vesion = vesion + num;
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
vesion = "Firefox";
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0) {
if (window.navigator.webkitPersistentStorage.toString() == "[object DeprecatedStorageQuota]") {
vesion = "Chrome";
} else {
vesion = "360";
}
}
//Opera
else if (explorer.indexOf("Opera") >= 0) {
vesion = "Opera";
}
//Safari
else if (explorer.indexOf("Safari") >= 0) {
vesion = "Safari";
}
alert(vesion);
});
//判断IE浏览器的版本
function IEVesion() {
var userAgent = window.navigator.userAgent.toLowerCase();
var vesion_num = "";
if (typeof window.attachEvent != "function" && ! -[1, ] == false) {
vesion_num = "11";
}
else if ($.browser.msie && /msie 10\.0/i.test(userAgent)) {
vesion_num = "10";
}
else if (typeof window.addEventListener == "function" && ! -[1, ] == false) {
vesion_num = "9";
}
else if ($.browser.msie && /msie 8\.0/i.test(userAgent)) {
vesion_num = "8";
}
else if ($.browser.msie && /msie 7\.0/i.test(userAgent)) {
vesion_num = "7";
}
else if (!$.browser.msie8 && !$.browser.msie7 && $.browser.msie && /msie 6\.0/i.test(userAgent)) {
vesion_num = "6";
}
return vesion_num;
}
原文:http://www.cnblogs.com/ywstrong/p/4887540.html