#javascript #html #internet-explorer-8 #user-agent #navigator
#javascript #HTML #internet-explorer-8 #пользовательский агент #навигатор
Вопрос:
Я пытаюсь реализовать функцию поддержки браузера на своей веб-странице. Для Firefox 3.6 он работает нормально, но по какой-то причине пользовательский агент IE 8 возвращает неверное значение.
Вот сценарий, когда я запускаю «локальный» код javascript в IE8, navigator.UserAgent возвращает правильную информацию (MSIE 8.0). Но когда я запускаю этот скрипт на сервере, он возвращает MSIE 7.0 в браузере IE 8.
Есть идеи?
Комментарии:
1. если вы прослушиваете пользовательские агенты, вы делаете это неправильно, и у вас возникнет куча подобных проблем. вы должны использовать обнаружение функций, но вы также можете просто настроить условные комментарии для ie7 и ie8 и изменить некоторые css, чтобы увидеть, что происходит.
2. Использование обнаружения функций в отличие от поиска в браузере было бы более надежным, существует множество библиотек, попробуйте этот поиск в Google
3. Сервер находится в вашей локальной сети или в Интернете? IE8 по умолчанию выдает себя за IE7 при просмотре сайтов интрасети .
Ответ №1:
Вам также нужно проверить токен Trident.
Токен Trident
Когда инструменты разработчика F12 используются для изменения режима браузера Internet Explorer, маркер версии строки user-agent изменяется, чтобы браузер отображался как более ранняя версия. Это делается для того, чтобы разрешить просмотр содержимого, специфичного для браузера, в Internet Explorer и обычно необходимо только тогда, когда веб-сайты не были обновлены для отражения текущих версий браузера.
Когда это происходит, в строку user-agent добавляется токен Trident. Этот маркер включает в себя номер версии, который позволяет идентифицировать версию браузера, независимо от текущего режима браузера.
ПОДРОБНЕЕ :http://msdn.microsoft.com/en-us/library/ms537503.aspx
Ответ №2:
Вы уверены, что не работаете в режиме IE7? Вы можете изменить это где-нибудь в настройках разработчика (я думаю, F12).
Комментарии:
1. вы имеете в виду «режим совместимости». Да, это вероятно, потому что в javascript, используя библиотеку Дугласа Крокфордса, вы можете обнаружить это, но на сервере у вас нет шансов.
Ответ №3:
Microsoft предоставляет эту страницу:
http://msdn.microsoft.com/en-us/library/ms537509 (v = против 85).aspx
Согласно образцу Javascript, можно было бы подумать, что IE8 вернет 8, а не 7.