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