2009-01-27

Browser Detection

программирование, JavaScript

Обнаружил что фрагмент кода из mootools выдает какой то странный результат для версии движка, может я не знаю каких нюансов, но все же хочется чтобы версия хоть как то коррелировала с версией браузера, кроме того писать каждый раз Browser.Engine.presto довольно длинно, хотелось бы чтобы было просто Browser.presto.

Mootools в отличие от jQuery и prototype определяет тип движка браузера по определенным особенностям объектной модели а не по navigator.userAgent, это неплохо, вот только версию движка таким образом можно определить очень приблизительно, поэтому версию будет логично определять по navigator.userAgent а сам движок по функционалу объектной модели.

Немного похозяйничав в коде получилось вот что:

var Browser = {	
	platform: (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase(),
	version: (navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie|me)[\/: ]([\d.]+)/) || [-1,-1])[1]
};

if (window.opera) Browser.presto = true;
else if (window.ActiveXObject) Browser.trident = true;
else if (!navigator.taintEnabled) Browser.webkit = true;
else if (document.getBoxObjectFor != null) Browser.gecko = true;

Ваш браузер:

Версия  
Платформа  
trident (IE)  
presto (Opera)  
webkit (Safary, Chrome)  
gecko (Firefox, Mozilla)  
 

комментарии:

 
RSS комментариев

Для того чтобы каждый раз не представляться можно войти как зарегистрированный пользователь.

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться

разное (187)
howto (124)
программирование (109)
гад-же-ты (75)
мысли (42)
PHP (41)
JavaScript (39)
вебмастеринг (37)
гондураша (28)
linux (28)
юмор (25)
полезное (21)
Android (17)
движок (17)
софт (15)
кино (14)
деньги (14)
видео (13)
музыка (10)
путешествия (10)
интернет (10)
беспредел (10)
книги (10)
diy (9)
занимательная физика (8)
умный дом (8)
ztools (8)
хостинг (7)
Nokia 5800 (7)
языки (7)
lifehack (6)
вебдизайн (6)
css (6)
прелоадер (5)
arduino (5)
oDesk (5)
apple (5)
связной (5)
козлы (5)
аниме (4)
svn (4)
движек (4)
кухня (4)
Python (4)
занимательная юриспруденция (4)
software (3)
synphony (3)
энергия (3)
рестораны (3)
спорт (2)
гитара (2)
webmastering (2)
Java (2)
bash (2)
фото на документы (2)
Ruby on Rails (2)
Берлин (2)
восстановить (1)
годнурас (1)
авторское право (1)
дурдом (1)
SEO (1)
технологии (1)
микросервисы (1)
сайты (1)
наука (1)
C++ (1)
programming (1)
гаджеты (1)
Поиск по блогу:

Valid XHTML 1.0 Strict