Я пытаюсь выяснить, можно ли определить, какую версию IE вы используете, а не ваш режим документа. Это может быть серверный или клиентский код (не важно), мне просто нужно знать, какая версия IE установлена у пользователя.
Обнаружение версии IE без учета режима совместимости
Ответы (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
@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
Найдите жетон трезубца. Трезубец/5.0== IE9. Трезубец/4.0 == IE8.
- person EricLaw; 27.12.2010