PageSourceSearch

http://amberroom.ru/VRT/rotmod/CommonFiles/codes/bdetect.js

js amberroom.ru collected 2026-10-02 22:30:58 UTC 6,871 bytes, 206 lines download raw bytes

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.