Подтвердить что ты не робот

Как определить, работает ли IE8 в режиме совместимости?

Есть ли способ определить, включен ли браузер IE8 в режиме совместимости?

Я не могу найти что-либо в Google, и поэтому мне интересно, есть ли это информация, доступная...

Почему вы спрашиваете!? Я пытаюсь найти ошибку в нашем приложении. Я собираюсь через журналы Эльмы, и, похоже, существует тенденция; эта ошибка обычно вызывается IE8. Я попытался переоткрыть дефект в моей копии IE8, но не смог. Я хочу сузить виновных и подумал, что это может быть способ сделать это.

4b9b3361

Ответ 4

Я использую:

try{ JSON } catch (e){ alert("Compatibility Mode Detected")  }

Объект JSON был определен в IE 8, поэтому в IE 7 или когда в Compatibility Mode ошибка была выбрана и поймана.

Мне нравится, что это работает каждый раз, и это одна строка.

Ответ 5

Чтобы расширить ответ на @Tommy, используйте обнаружение функции (предупреждение является необязательным, конечно, я использую хороший div или встроенное сообщение где-нибудь):

if(typeof document.documentMode !== 'undefined') { // checks if this is IE 8 or >
         if(document.documentMode < 8) {  // check if in compat mode 
             // add code here to inform user that they need to turn off compatiblity view
             alert("Click ALT-T then compat view etc...");  
         }
} 

Ответ 6

Я верю, что он содержится в строке User Agent:

"Новый тег в строке User Agent позволяет обнаруживать клиентов, просматривающих ваш сайт в представлении совместимости. Этот тег также присутствует в" обычной "строке User Agent 8."

"В случае, если пользователь выбирает представление совместимости для вашего сайта, вы можете" вернуть их "в желаемый режим макета с использованием тега таргетинга версии/заголовка HTTP. Новое значение контента" IE = EmulateIE8, округляет список поддерживаемых значений и помогает в этом конкретном сценарии. "

Дополнительная информация здесь: http://blogs.msdn.com/ie/archive/2008/08/27/introducing-compatibility-view.aspx

Ответ 7

В MVC/ASP Request.Browser.Version возвращается "7.0" независимо от версии, когда в представлении совместимости в противном случае возвращается версия браузера.

Вы также можете использовать Request.Browser.Browser, чтобы проверить, что он IE

Request.Browser.Version
Request.Browser.Browser

Ответ 8

Очень простой метод - нажмите F12, он откроет панель инструментов разработчика. После меню вы увидите режим браузера. Очевидно, что он работает в режиме IE8 или в режиме IE7.

Ответ 9

if(preg_match('/(?i)msie/', $_SERVER['HTTP_USER_AGENT'])) {
if(preg_match('/(?i)Trident\/5/', $_SERVER['HTTP_USER_AGENT'])) {
    echo "IE9";
}
elseif(preg_match('/(?i)Trident\/4/', $_SERVER['HTTP_USER_AGENT'])) {
    echo "IE8";
}
elseif(!preg_match('/(?i)Trident\/4/', $_SERVER['HTTP_USER_AGENT']) AND preg_match('/(?i)msie 7/', $_SERVER['HTTP_USER_AGENT'])) {
    echo "IE7";
}
elseif(preg_match('/(?i)msie [1-6]/', $_SERVER['HTTP_USER_AGENT'])) {
    echo "IE1 à IE6";
}}