1

Определяем версию IE на клиенте

4 октября 2008 года

К сожалению иногда верстка ну никак не хочет работать правильно на некоторых браузерах, выявляя совершенно непонятные баги этого самого браузера. Поэтому приходится писать javascript-затычки для этих самых браузеров.

Однако, поскольку это происходит крайне редко, мне приходилось каждый раз искать алгоритм определения версии браузера, используемого клиентом. Мне это надоело, и я решил подробнее разобраться в вопросе.

Итак, javascript узнает информацию о браузере клиента через navigator.userAgent. Можете проверить, что javascript-программист может узнать о Вашем браузере, введя в строку адреса «javascript:navigator.userAgent».

Немного подумав, можно написать функцию, определяющую имя используемого браузера:

function detect_browser()
{
var agt = navigator.userAgent.toLowerCase();
if (agt.indexOf("opera") != -1) return 'Opera';
if (agt.indexOf("firefox") != -1) return 'Firefox';
if (agt.indexOf("safari") != -1) return 'Safari';
if (agt.indexOf("msie") != -1) return 'Internet Explorer';
if (agt.indexOf("netscape") != -1) return 'Netscape';
if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';
if (agt.indexOf('\/') != -1) {
if (agt.substr(0,agt.indexOf('\/')) != 'mozilla') 
{
return navigator.userAgent.substr(0,agt.indexOf('\/'));
}
else return 'Netscape';
} else if (agt.indexOf(' ') != -1)
return navigator.userAgent.substr(0,agt.indexOf(' '));
else return navigator.userAgent;
}

Лично мне нужно было узнать: а не IE 7 ли на клиенте? Я это сделал так:

var agt = navigator.userAgent.toLowerCase();
if(agt.indexOf("msie") != -1)
if(agt.substr(agt.indexOf("msie")+5,1) == '7')
clearBugsOfIE7();

Метки: ,

Один коментарий к записи «Определяем версию IE на клиенте»

  1. aleske,

    для полного щастья не хватает ссылок на
    http://ru.wikipedia.org/wiki/User_agent
    http://www.useragentstring.com/
    http://www.user-agents.org/

    вообще говоря, в ближайшем будущем корректнее будет смотреть
    на версию движка, а не браузера. то есть, Trident, AppleWebKit, Presto,
    Gecko под капотом, али что другое.

Оставить комментарий