690
 

“Кратчайший” способ определить тип браузера

До тех пор, пока существуют различия в работе JavaScript на разных браузерах, мы пожалуй будем вынуждены определять, с каким именно клиентом мы имеем дело. А поскольку JavaScript должен быть как можно компактней, то и код, выполняющие такое определение также должен быть максимально сжат. Сегодня я не без удовольствия нашел статью, в которой описано как это можно сделать очень просто и компактно.

Итак, по очереди для каждого браузера:

Firefox 2/3:

// Firefox 2/3
FF=/a/[-1]=='a'

// Firefox 3
FF3=(function x(){})[-5]=='x'

// Firefox 2
FF2=(function x(){})[-6]=='x'

Internet Explorer 6/7/8:

IE='\v'=='v'

Safari:

Saf=/a/.__proto__=='//'

Chrome

Chr=/source/.test((/a/.toString+''))

Opera

Op=/^function \(/.test([].sort)

Ну и конечно же можно сложить все это в одну строку:

B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':/a/[-1]=='a'?'FF':'\v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':/^function \(/.test([].sort)?'Op':'Unknown'
Добавить в закладки:
Maklay.com - Большой каталог товаров для спорта и активного отдыха

Комментарии на ““Кратчайший” способ определить тип браузера”

  1. Браузеры не только CSS, но JS обрабатывают по-своему. Хорошо, что хоть html более-менее одинаково показывают :)

  2. Internet Explorer 6/7/8 – это не устраивает((
    как вынести отдельно для ИЕ6?

  3. [...] совершенно случайно, я наткнулся на поразительный пост, который описывает элегантные (!) [...]

  4. @Serg_pnz
    эммм. С версиями IE посложнее будет. Вернее не так коротко :)
    isIE6 = navigator.userAgent.toLowerCase().indexOf(’msie 6′) != -1;

    Есть еще элегантный, или вернее сказать экстравагантный метод:
    var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;

    Но если использовать компрессор, то комменты могут улетучиться ). Еще интересная статья по этому поводу здесь: http://www.thefutureoftheweb.com/blog/detect-ie6-in-javascript

  5. -[1,] //возврощает false для IE и true для других.

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

JSToolbox создан на основе WordPress