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 { string: navigator.userAgent, subString: "Chrome", identity: "Chrome" }, 29 { string: navigator.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb" }, 30 { string: navigator.vendor, subString: "Apple", identity: "Safari", versionSearch: "Version" }, 31 { prop: window.opera, identity: "Opera" }, 32 { string: navigator.vendor, subString: "iCab", identity: "iCab" }, 33 { string: navigator.vendor, subString: "KDE", identity: "Konqueror" }, 34 { string: navigator.userAgent, subString: "Firefox", identity: "Firefox" }, 35 { string: navigator.vendor, subString: "Camino", identity: "Camino" }, 36 { // for newer Netscapes (6+) 37 string: navigator.userAgent, subString: "Netscape", identity: "Netscape" 38 }, 39 { string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE" }, 40 { string: navigator.userAgent, subString: "Gecko", identity: "Mozilla", versionSearch: "rv" }, 41 { // for older Netscapes (4-) 42 string: navigator.userAgent, subString: "Mozilla", identity: "Netscape", versionSearch: "Mozilla" } 43 ], 44 dataOS : [ 45 { string: navigator.platform, subString: "Win", identity: "Windows" }, 46 { string: navigator.platform, subString: "Mac", identity: "Mac" }, 47 { string: navigator.userAgent, subString: "iPhone", identity: "iPhone/iPod" }, 48 { string: navigator.platform, subString: "Linux", identity: "Linux" } 49 ] 50 51}; 52BrowserDetect.init(); 53 54if((BrowserDetect.browser == "Explorer") && (BrowserDetect.version == "6")) { 55 document.execCommand("BackgroundImageCache", false, true) 56}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.