source: gs3-extensions/web-audio/trunk/js-mad/script/browser-detect.js@ 28388

Last change on this file since 28388 was 28388, checked in by davidb, 11 years ago

Set of JS, CSS, PNG etc web resources to support a mixture of audio player/document display capabilities

File size: 2.5 KB
Line 
1var 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: "Mac"
103 },
104 {
105 string: navigator.userAgent,
106 subString: "iPhone",
107 identity: "iPhone/iPod"
108 },
109 {
110 string: navigator.platform,
111 subString: "Linux",
112 identity: "Linux"
113 }
114 ]
115
116};
117BrowserDetect.init();
Note: See TracBrowser for help on using the repository browser.