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 | },
|
---|
48 | {
|
---|
49 | string: navigator.vendor,
|
---|
50 | subString: "iCab",
|
---|
51 | identity: "iCab"
|
---|
52 | },
|
---|
53 | {
|
---|
54 | string: navigator.vendor,
|
---|
55 | subString: "KDE",
|
---|
56 | identity: "Konqueror"
|
---|
57 | },
|
---|
58 | {
|
---|
59 | string: navigator.userAgent,
|
---|
60 | subString: "Firefox",
|
---|
61 | identity: "Firefox"
|
---|
62 | },
|
---|
63 | {
|
---|
64 | string: navigator.vendor,
|
---|
65 | subString: "Camino",
|
---|
66 | identity: "Camino"
|
---|
67 | },
|
---|
68 | { // for newer Netscapes (6+)
|
---|
69 | string: navigator.userAgent,
|
---|
70 | subString: "Netscape",
|
---|
71 | identity: "Netscape"
|
---|
72 | },
|
---|
73 | {
|
---|
74 | string: navigator.userAgent,
|
---|
75 | subString: "MSIE",
|
---|
76 | identity: "Explorer",
|
---|
77 | versionSearch: "MSIE"
|
---|
78 | },
|
---|
79 | {
|
---|
80 | string: navigator.userAgent,
|
---|
81 | subString: "Gecko",
|
---|
82 | identity: "Mozilla",
|
---|
83 | versionSearch: "rv"
|
---|
84 | },
|
---|
85 | { // for older Netscapes (4-)
|
---|
86 | string: navigator.userAgent,
|
---|
87 | subString: "Mozilla",
|
---|
88 | identity: "Netscape",
|
---|
89 | versionSearch: "Mozilla"
|
---|
90 | }
|
---|
91 | ],
|
---|
92 | dataOS : [
|
---|
93 | {
|
---|
94 | string: navigator.platform,
|
---|
95 | subString: "Win",
|
---|
96 | identity: "Windows"
|
---|
97 | },
|
---|
98 | {
|
---|
99 | string: navigator.platform,
|
---|
100 | subString: "Mac",
|
---|
101 | identity: "Mac"
|
---|
102 | },
|
---|
103 | {
|
---|
104 | string: navigator.userAgent,
|
---|
105 | subString: "iPhone",
|
---|
106 | identity: "iPhone/iPod"
|
---|
107 | },
|
---|
108 | {
|
---|
109 | string: navigator.platform,
|
---|
110 | subString: "Linux",
|
---|
111 | identity: "Linux"
|
---|
112 | }
|
---|
113 | ]
|
---|
114 |
|
---|
115 | };
|
---|
116 | BrowserDetect.init(); |
---|