浏览器检测是在工作中经常用到的,如果只是简单判断当前是什么浏览器的话可以通过window.navigator.useragent这样的js来直接判断就可以了!
但是针对浏览器版本要求比较高的时候,如果只是单纯的判断浏览器的名字的话还不能解决问题,这时候就要通过其他方式来实现!现有的jquery已经废弃了$.browser的使用,所以在这里我介绍一个叫做"浏览器嗅探器"的程序来实现!
代码如下:(BrowserDetect.js)
-
var BrowserDetect = {
-
init: function () {
-
this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
-
this.version = this.searchVersion(navigator.userAgent)
-
|| this.searchVersion(navigator.appVersion)
-
|| "an unknown version";
-
this.OS = this.searchString(this.dataOS) || "an unknown OS";
-
},
-
searchString: function (data) {
-
for (var i=0;i<data.length;i++) {
-
var dataString = data[i].string;
-
var dataProp = data[i].prop;
-
this.versionSearchString = data[i].versionSearch || data[i].identity;
-
if (dataString) {
-
if (dataString.indexOf(data[i].subString) != -1)
-
return data[i].identity;
-
}
-
else if (dataProp)
-
return data[i].identity;
-
}
-
},
-
searchVersion: function (dataString) {
-
var index = dataString.indexOf(this.versionSearchString);
-
if (index == -1) return;
-
return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
-
},
-
dataBrowser: [
-
{
-
string: navigator.userAgent,
-
subString: "Chrome",
-
identity: "Chrome"
-
},
-
{ string: navigator.userAgent,
-
subString: "OmniWeb",
-
versionSearch: "OmniWeb/",
-
identity: "OmniWeb"
-
},
-
{
-
string: navigator.vendor,
-
subString: "Apple",
-
identity: "Safari",
-
versionSearch: "Version"
-
},
-
{
-
prop: window.opera,
-
identity: "Opera"
-
},
-
{
-
string: navigator.vendor,
-
subString: "iCab",
-
identity: "iCab"
-
},
-
{
-
string: navigator.vendor,
-
subString: "KDE",
-
identity: "Konqueror"
-
},
-
{
-
string: navigator.userAgent,
-
subString: "Firefox",
-
identity: "Firefox"
-
},
-
{
-
string: navigator.vendor,
-
subString: "Camino",
-
identity: "Camino"
-
},
-
{ // for newer Netscapes (6+)
-
string: navigator.userAgent,
-
subString: "Netscape",
-
identity: "Netscape"
-
},
-
{
-
string: navigator.userAgent,
-
subString: "MSIE",
-
identity: "Internet Explorer",
-
versionSearch: "MSIE"
-
},
-
{
-
string: navigator.userAgent,
-
subString: "Gecko",
-
identity: "Mozilla",
-
versionSearch: "rv"
-
},
-
{ // for older Netscapes (4-)
-
string: navigator.userAgent,
-
subString: "Mozilla",
-
identity: "Netscape",
-
versionSearch: "Mozilla"
-
}
-
],
-
dataOS : [
-
{
-
string: navigator.platform,
-
subString: "Win",
-
identity: "Windows"
-
},
-
{
-
string: navigator.platform,
-
subString: "Mac",
-
identity: "Mac"
-
},
-
{
-
string: navigator.userAgent,
-
subString: "iPhone",
-
identity: "iPhone/iPod"
-
},
-
{
-
string: navigator.platform,
-
subString: "Linux",
-
identity: "Linux"
-
}
-
]
-
-
};
-
BrowserDetect.init();
使用方式如下:
这个js兼容非常不错!使用起来比较简单,而且功能强大!