1/* 2 Browser Detect set v1.1 3 - ÑÑнкÑии опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð±ÑаÑзеÑа и его веÑÑии (IE6+, Opera, Firefox, Chrome, Safari ) 4 5 - browserDetectNav(chrAfterPoint) // пÑÑÑм анализа UA-ÑÑÑоки 6 - browserDetectJS() // пÑÑÑм анализа поддеÑживаемÑÑ js-ÑвойÑÑв 7 - getBrowser() // обоими ÑпоÑобами 8 - isItBrowser(browserCom, browserVer, detectMethod) // пÑовеÑÑÐµÑ ÑооÑвеÑÑÑвие бÑаÑзеÑа Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð¸Ð¼ÐµÐ½Ð¸ и веÑÑии, заданнÑм ÑпоÑобом(1 или 2) 9 10 - ÑÑнкÑÐ¸Ñ Ð´Ð»Ñ "ненавÑзÑивого" пÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ Ð±ÑаÑÐ·ÐµÑ 11 12 checkBrowser(params = { 13 warning: [string], // оконÑание Ñаблонной ÑÑÐ°Ð·Ñ "ÐеÑÑÐ¸Ñ ÐаÑего бÑаÑзеÑа BBBBB (ver ХХ.ХХ) {warning}" 14 message: [string], // оÑновное ÑообÑение 15 question: [string], // Ñам вопÑÐ¾Ñ "Ðе желаеÑе ли?" (Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñвой Ð¿Ð¾Ð´Ñ Ð¾Ð´ к лÑдÑм) :) 16 17 chrome: [float], // минималÑно-допÑÑÑимÑе веÑÑии бÑаÑзеÑов 18 safari: [float], 19 msie: [float], 20 opera: [float], 21 firefox: [float], 22 23 chromeLink: [string], // ÑÑÑлки на обновление 24 safariLink: [string], 25 msieLink: [string], 26 operaLink: [string], 27 firefoxLink: [string] 28 }) 29 ÐÑе паÑамеÑÑÑ ÑÑнкÑии checkBrowser не обÑзаÑелÑнÑе. 30 31 32 http://www.xiper.net/collect/js-plugins/browser-detect/browser-name-and-version.html 33 Author Andrei Kosyack 34*/ 35 36function checkBrowser(params){ 37 if (!params) params = new Object; 38 if (!params.chromeLink) params.chromeLink = 'http://www.google.com/chrome/eula.html'; 39 if (!params.safariLink) params.safariLink = 'http://www.apple.com/ru/safari/download/'; 40 if (!params.msieLink) params.msieLink = 'http://www.microsoft.com/rus/windows/internet-explorer/'; 41 if (!params.operaLink) params.operaLink = 'http://ru.opera.com/download/'; 42 if (!params.firefoxLink) params.firefoxLink = 'http://www.mozilla-russia.org/products/firefox/'; 43 if (!params.warning) params.warning = 'ÑÑÑаÑела!\r\n\r\n' 44 else params.warning += '\r\n\r\n'; 45 if (!params.question) params.question = 'ХоÑиÑе ли обновиÑÑ Ð²ÐµÑÑÐ¸Ñ Ñвоего бÑаÑзеÑа?'; 46 if (!params.message) params.message = '' 47 else params.message += '\r\n\r\n'; 48 if (!params.chrome) params.chrome = 11; 49 if (!params.safari) params.safari = 5; 50 if (!params.msie) params.msie = 6; 51 if (!params.opera) params.opera = 10.5; 52 if (!params.firefox) params.firefox = 3.5; 53 54var browser = getBrowser(1), 55 browserName = browser[0], 56 browserVer = browser[1], 57 browserVerPoints = browser[2], 58 browserVer = parseFloat(browserVer+"."+browserVerPoints), 59 systemMessage = 'ÐеÑÑÐ¸Ñ ÐаÑего бÑаÑзеÑа '+browserName+'(ver '+browserVer+') '+params.warning+params.message+params.question, 60 bLink = ''; 61 62switch (browserName) 63{ 64 case 'Chrome': 65 if (browserVer >= params.chrome) return false 66 else bLink = params.chromeLink; break; 67 case 'Safari': 68 if (browserVer >= params.safari) return false 69 else bLink = params.safariLink; break; 70 case 'MSIE': 71 if (browserVer >= params.msie) return false 72 else bLink = params.msieLink; break; 73 case 'Opera': 74 if (browserVer >= params.opera) return false 75 else bLink = params.operaLink; break; 76 case 'Firefox': 77 if (browserVer >= params.firefox) return false 78 else bLink = params.firefoxLink; break; 79}; 80 81 82 var conf = confirm(systemMessage); 83 84 if (conf == true) document.location.href = bLink 85 else return false; 86 87}; 88 89function browserDetectNav(chrAfterPoint) 90{ 91var UA=window.navigator.userAgent, 92 OperaB = /Opera[ \/]+\w+\.\w+/i, 93 OperaV = /Version[ \/]+\w+\.\w+/i, 94 FirefoxB = /Firefox\/\w+\.\w+/i, 95 ChromeB = /Chrome\/\w+\.\w+/i, 96 CriOS = /CriOS\/\w+\.\w+/i, 97 SafariB = /Version\/\w+\.\w+/i, 98 IEB = /MSIE *\d+\.\w+/i, 99 SafariV = /Safari\/\w+\.\w+/i, 100 browser = new Array(), 101 browserSplit = /[ \/\.]/i,
102 OperaV = UA.match(OperaV), 103 Firefox = UA.match(FirefoxB), 104 Chrome = UA.match(ChromeB), 105 CriOS = UA.match(CriOS), 106 Safari = UA.match(SafariB), 107 SafariV = UA.match(SafariV), 108 IE = UA.match(IEB), 109 Opera = UA.match(OperaB); 110 111 //alert(UA); 112 113 if ((!Opera=="")&(!OperaV=="")) browser[0]=OperaV[0].replace(/Version/, "Opera") 114 else 115 if (!Opera=="") browser[0]=Opera[0] 116 else 117 if (!IE=="") browser[0] = IE[0] 118 else 119 if (!Firefox=="") browser[0]=Firefox[0] 120 else 121 if (!Chrome=="") browser[0] = Chrome[0] 122 else 123 if (!CriOS=="") browser[0] = CriOS[0] 124 else 125 if ((!Safari=="")&&(!SafariV=="")) browser[0] = Safari[0].replace("Version", "Safari"); 126 127 var outputData; 128 129 if (browser[0] != null) outputData = browser[0].split(browserSplit); 130 if (((chrAfterPoint == null)|(chrAfterPoint == 0))&(outputData != null)) 131 { 132 chrAfterPoint=outputData[2].length; 133 outputData[2] = outputData[2].substring(0, chrAfterPoint); 134 return(outputData); 135 } 136 else 137 if (chrAfterPoint != null) 138 { 139 outputData[2] = outputData[2].substr(0, chrAfterPoint); 140 return(outputData); 141 } 142 else return(false); 143} 144 145function browserDetectJS() { 146var 147 browser = new Array(); 148 149 if (window.opera) { 150 browser[0] = "Opera"; 151 browser[1] = window.opera.version(); 152 } 153 else 154 if (window.chrome) { 155 browser[0] = "Chrome"; 156 } 157 else 158 if (window.sidebar) { 159 browser[0] = "Firefox"; 160 } 161 else 162 if ((!window.external)&&(browser[0]!=="Opera")) { 163 browser[0] = "Safari"; 164 } 165 else 166 if (window.ActiveXObject) { 167 browser[0] = "MSIE"; 168 if (window.navigator.userProfile) browser[1] = "6" 169 else 170 if (window.Storage) browser[1] = "8" 171 else 172 if ((!window.Storage)&&(!window.navigator.userProfile)) browser[1] = "7" 173 else browser[1] = "Unknown"; 174 } 175 176 if (!browser) return(false) 177 else return(browser); 178} 179 180function getBrowser(chrAfterPoint) { 181 var 182 browserNav = browserDetectNav(chrAfterPoint), 183 browserJS = browserDetectJS(); 184 185 if (browserNav[0] == browserJS[0]) return(browserNav) 186 else 187 if (browserNav[0] != browserJS[0]) return(browserJS) 188 else 189 return(false); 190} 191 192 193function isItBrowser(browserCom, browserVer, detectMethod) { 194var browser; 195 196switch (detectMethod) { 197 case 1: browser = browserDetectNav(); break; 198 case 2: browser = browserDetectJS(); break; 199 default: browser = getBrowser(); 200}; 201 202 if ((browserCom == browser[0])&(browserVer == browser[1])) return(true) 203 else 204 if ((browserCom == browser[0])&((browserVer == null)||(browserVer == 0))) return(true) 205 else return(false); 206};
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.