[15c7d39] | 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(); |
---|