НЕ ВЫПОЛНЯЙТЕ ОБНАРУЖЕНИЕ БРАУЗЕРА! Он сломается и вызовет у вас проблемы.
IE11 имеет совершенно другую строку агента пользователя по сравнению с предыдущими версиями IE; он больше не включает текст «MSIE». Вот почему ваш код обнаружения не работает.
Здесь важно отметить, что причина, по которой они сделали это, была преднамеренной. Они хотели сломать такие скрипты обнаружения браузера.
Можно изменить ваш код для работы с IE11, но я настоятельно рекомендую не делать этого, так как вы, вероятно, снова столкнетесь с той же проблемой, когда выйдет IE12.
Так почему же они хотели сломать скрипты обнаружения браузера? Просто: Потому что в IE11 нет ошибок предыдущих версий, и в нем много новых функций. Поэтому, если вы выполняете обнаружение браузера, потому что в IE есть определенные ошибки или отсутствующие функции, и у вас есть код для исправления этих проблем на основе обнаружения браузера, то этот код может фактически вызвать более серьезные проблемы в IE11, где исправления не нужны.
IE11 сломал ваш скрипт, но та же логика применима ко всем браузерам и всем версиям; Определение браузера и версии почти всегда неправильно.
Если есть определенные функции, которые вы хотите поддерживать, но которые отсутствуют в более старых версиях IE (или других старых браузерах), не используйте обнаружение браузера для их обработки; вместо этого следует использовать обнаружение функций.
Обнаружение функций означает проверку браузера на предмет поддержки определенных функций, которые вы хотите использовать. Самый распространенный способ сделать это — использовать библиотеку Modernizr. Документы на их сайте помогут вам настроить его.
В старых версиях IE есть несколько ошибок, которые трудно обнаружить, и для этих нескольких случаев допустимо использовать обнаружение браузера в качестве крайней меры, но на самом деле это только для IE6 и более ранних версий. Может быть, иногда для IE7. Но в вопросе вы указали, что смотрите только на IE8 и более поздние версии, так что это не должно применяться.
Придерживайтесь функции обнаружения; это более надежно, лучше и не сломается внезапно, когда будет выпущена новая версия браузера.
person
Spudley
schedule
18.09.2013