Определение версии IE без учета режима совместимости - PullRequest
3 голосов
/ 27 декабря 2010

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

1 Ответ

3 голосов
/ 27 декабря 2010

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

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

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

В IE9 есть какая-то новая строка UA - Подробнее см. в IEBlog .

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

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