2010-12-27 4 views
3

Я пытаюсь выяснить, можно ли определить, какую версию IE вы используете, а не ваш режим документа. Это может быть серверный или клиентский код (не имеет значения), мне просто нужно знать, какую версию IE пользователь установил.Обнаружение версии IE, не учитывающей режим совместимости

ответ

3

Он может быть обнаружен в обоих случаях путем изучения строки User-Agent. Обратите внимание, что браузеры могут обманывать свою строку UA, но сейчас это реже, чем в прошлом. См. this article on MSDN для старых строк UA.

Следует также отметить, что IE8 посылает другую строку UA в режиме совместимости и в стандартном режиме (см this и this - оба IE8, хотя бывший говорит MSIE 7.0).

См. this для длинного списка строк UA - обратите внимание, что вы должны искать шаблон, а не точное соответствие, поскольку установленное программное обеспечение изменит строку UA.

В IE9 есть некоторые новые вещи UA string - see the IEBlog for details.

Чтобы подвести итог (и заимствовать от комментариев @EricLaw «s):

  • нет Trident в UA струна - проверить MSIE [0-9].0 строку для версии
  • Trident/4.0 - IE 8, версия в MSIE не имеет значения
  • Trident/5.0 - IE 9
+0

Я до сих пор не могу понять, Wheater браузер IE9 или IE8 ... – Alxandr

+0

@Alxandr: Я думаю, что IEBlog я здесь совершенно ясно: «Ток версии увеличивается с« MSIE 8.0 »до« MSIE 9.0 ». Идентификатор Trident увеличивается с «Trident/4.0» до «Trident/5.0». »(Добавлена ​​ссылка на IEBlog в ответ) Итак: нет Trident - любая версия' MSIE \ d.0'. Trident 4.0 - MSIE8. Trident 5.0 - MSIE 9. – Piskvor

+2

Ищите токен Trident. «Trident/5.0» == IE9. «Trident/4.0» == IE8. – EricLaw

Смежные вопросы