Это можно обнаружить в обоих случаях, изучив строку 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