Обнаружение версии IE без учета режима совместимости

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


person Alxandr    schedule 27.12.2010    source источник


Ответы (1)


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

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

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

В IE9 появилась новая строка UA — подробности см. в IEBlog.

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

  • нет Trident в строке UA - проверьте строку MSIE [0-9].0 для версии
  • Trident/4.0 - IE 8, версия в MSIE не актуальна
  • Трезубец/5.0 — IE 9
person Piskvor left the building    schedule 27.12.2010
comment
@Alxandr: я думаю, что IEBlog здесь совершенно ясен: токен версии увеличивается с «MSIE 8.0» до «MSIE 9.0». Токен Trident увеличен с «Trident/4.0» до «Trident/5.0». (добавлена ​​ссылка на IEBlog в ответ) Итак: нет Trident - какой бы ни была версия MSIE \d.0. Трезубец 4.0 — MSIE8. Трезубец 5.0 - MSIE 9. - person Piskvor left the building; 27.12.2010
comment
Найдите жетон трезубца. Трезубец/5.0== IE9. Трезубец/4.0 == IE8. - person EricLaw; 27.12.2010