root / snf-astakos-app / astakos / im / static / im / js / os.js @ 0c887794
History | View | Annotate | Download (2.7 kB)
1 |
var BrowserDetect = {
|
---|---|
2 |
init: function () { |
3 |
this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; |
4 |
this.version = this.searchVersion(navigator.userAgent) |
5 |
|| this.searchVersion(navigator.appVersion)
|
6 |
|| "an unknown version";
|
7 |
this.OS = this.searchString(this.dataOS) || "an unknown OS"; |
8 |
}, |
9 |
searchString: function (data) { |
10 |
for (var i=0;i<data.length;i++) { |
11 |
var dataString = data[i].string;
|
12 |
var dataProp = data[i].prop;
|
13 |
this.versionSearchString = data[i].versionSearch || data[i].identity;
|
14 |
if (dataString) {
|
15 |
if (dataString.indexOf(data[i].subString) != -1) |
16 |
return data[i].identity;
|
17 |
} |
18 |
else if (dataProp) |
19 |
return data[i].identity;
|
20 |
} |
21 |
}, |
22 |
searchVersion: function (dataString) { |
23 |
var index = dataString.indexOf(this.versionSearchString); |
24 |
if (index == -1) return; |
25 |
return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); |
26 |
}, |
27 |
dataBrowser: [
|
28 |
{ |
29 |
string: navigator.userAgent,
|
30 |
subString: "Chrome", |
31 |
identity: "Chrome" |
32 |
}, |
33 |
{ string: navigator.userAgent,
|
34 |
subString: "OmniWeb", |
35 |
versionSearch: "OmniWeb/", |
36 |
identity: "OmniWeb" |
37 |
}, |
38 |
{ |
39 |
string: navigator.vendor,
|
40 |
subString: "Apple", |
41 |
identity: "Safari", |
42 |
versionSearch: "Version" |
43 |
}, |
44 |
{ |
45 |
prop: window.opera,
|
46 |
identity: "Opera", |
47 |
versionSearch: "Version" |
48 |
}, |
49 |
{ |
50 |
string: navigator.vendor,
|
51 |
subString: "iCab", |
52 |
identity: "iCab" |
53 |
}, |
54 |
{ |
55 |
string: navigator.vendor,
|
56 |
subString: "KDE", |
57 |
identity: "Konqueror" |
58 |
}, |
59 |
{ |
60 |
string: navigator.userAgent,
|
61 |
subString: "Firefox", |
62 |
identity: "Firefox" |
63 |
}, |
64 |
{ |
65 |
string: navigator.vendor,
|
66 |
subString: "Camino", |
67 |
identity: "Camino" |
68 |
}, |
69 |
{ // for newer Netscapes (6+)
|
70 |
string: navigator.userAgent,
|
71 |
subString: "Netscape", |
72 |
identity: "Netscape" |
73 |
}, |
74 |
{ |
75 |
string: navigator.userAgent,
|
76 |
subString: "MSIE", |
77 |
identity: "Explorer", |
78 |
versionSearch: "MSIE" |
79 |
}, |
80 |
{ |
81 |
string: navigator.userAgent,
|
82 |
subString: "Gecko", |
83 |
identity: "Mozilla", |
84 |
versionSearch: "rv" |
85 |
}, |
86 |
{ // for older Netscapes (4-)
|
87 |
string: navigator.userAgent,
|
88 |
subString: "Mozilla", |
89 |
identity: "Netscape", |
90 |
versionSearch: "Mozilla" |
91 |
} |
92 |
], |
93 |
dataOS : [
|
94 |
{ |
95 |
string: navigator.platform,
|
96 |
subString: "Win", |
97 |
identity: "windows" |
98 |
}, |
99 |
{ |
100 |
string: navigator.platform,
|
101 |
subString: "Mac", |
102 |
identity: "MacOS" |
103 |
}, |
104 |
{ |
105 |
string: navigator.userAgent,
|
106 |
subString: "iPhone", |
107 |
identity: "iPhone" |
108 |
}, |
109 |
{ |
110 |
string: navigator.userAgent,
|
111 |
subString: "iPad", |
112 |
identity: "iPad" |
113 |
}, |
114 |
{ |
115 |
string: navigator.platform,
|
116 |
subString: "Linux", |
117 |
identity: "linux" |
118 |
} |
119 |
] |
120 |
|
121 |
}; |
122 |
BrowserDetect.init(); |