一个常用但是被高估的Javascript函数就是浏览器检测。有些时候,你想给出一个说明或者加载一个页面来提示用户,以免使用Safari等浏览器。
使用方法:
Browser name: BrowserDetect.browser
Browser version: BrowserDetect.version
OS name: BrowserDetect.OS
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:
"
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();