1

Обновление: главный вопрос: есть ли что-нибудь, что заставило бы IE10 отображать страницу в режиме Quirks IE5 специально (в отличие от режима совместимости вообще), несмотря на то, что на самом деле есть надлежащий doctype и x-ua-совместимый метатег? (Для того, чтобы быть ясно, что мы не хотим, чтобы страница визуализации в IE5 причуды, мы хотим, чтобы это сделать в полном объеме стандартов IE10.)Как имитировать настройки просмотра совместимости IE в IE?


Наша страница рендеринга в IE5 режиме совместимости для одного клиента, что приводит к визуализации потерпеть неудачу. Я могу использовать инструменты dev, чтобы заставить IE войти в один и тот же режим и воспроизвести тот же сбой, но почему это произойдет с ним (и только с ним) в первую очередь? Может быть, это что-то в его окружении, и смогу ли я имитировать это на моем конце? Клиент использует IE10.

Мы используем:

<!DOCTYPE html> 

и:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

Мы собираемся добавить заголовок ответа HTTP также:

X-UA-Compatible: IE=edge,chrome=1 

Но у нас нет никакой возможности проверяя это исправление, поскольку он отлично работает в наших собственных примерах IE10.

+0

Вы проверили свой сайт, используя что-то вроде http://www.my-debugbar.com/wiki/IETester/HomePage –

+1

Мы также столкнулись с одной из таких проблем, и причина этой проблемы оказалась патчем MS Security (KB2846071) который был установлен на машине клиента, но не на нашей. – Guanxi

+0

(На своем ПК) Откройте IE. Нажмите «», затем перейдите в «Инструменты»> «Настройки просмотра совместимости» (я понятия не имею, где это найти в меню «передача»). Убедитесь, что «Показать все веб-сайты в представлении совместимости» *** не проверено ***. Кроме того, убедитесь, что ваш сайт отсутствует в списке сайтов, которые появляются. Скорее всего, это настройка на его ПК. –

ответ

1

С этой ссылке: http://blogs.msdn.com/b/deviations/archive/2009/05/07/how-to-enable-ie-8-compatibility-view-for-your-whole-web-site-or-for-specific-web-site-directories.aspx

Вопрос спросил много клиентов «Как я могу заставить браузер клиента использовать режим совместимости, когда они посещают наш сайт? Так , что клиент не должен активировать ее на стороне клиента.»

Веб-разработчики и администраторы сайта могут настроить IIS и их сайты сказать Internet Explorer 8 автоматически эмулировать Интернет Explorer 7, когда они посещают их сайт или только определенные веб-страницы.

Это делается путем добавления пользовательского заголовка HTTP в IIS и веб-сайт web.config или для добавления метатега на определенные страницы. Заголовок HTTP - , интерпретируемый Internet Explorer 8, который активирует вид совместимости . Все остальные браузеры просто игнорируют этот настраиваемый заголовок HTTP .

X-UA-Compatible: IE=EmulateIE7 

Это ВЫНУЖДАТЬ рендеринга в режиме совместимости.

Если вы хотите «имитировать» браузер в режиме совместимости, пользователь RocketHazmat упомянул, что делать (с помощью инструментов> настроек) в комментарии.

Вы можете ознакомиться с этим свойством и Режим просмотра совместимости в IE8 и IE9 через следующие два блога: Представление совместимости: http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx. Представляем пользовательский агент IE9 Строка: http://blogs.msdn.com/b/ie/archive/2010/03/23/introducing-ie9-s-user-agent-string.aspx.

Если вы хотите, чтобы «обнаружить» IE режим просмотра Совместимость:

я нашел этот SO ответ интересно: JavaScript: Can I detect IE9 if it's in IE7 or IE8 compatibility mode? (document.documentMode это лучший способ). Предмет on stackoverflow from a google search.

по этой ссылке: http://social.msdn.microsoft.com/Forums/vstudio/en-US/ae715fd2-1ddd-46f7-8c26-9aed6b2103f1/how-to-detect-compatibility-mode-in-ie-any-version

После исследования, мы можем найти, что значения к User Agent String при различных режимах BROWSE являются:

  • IE7: Mozilla/4.0 (совместимый; MSIE 7.0, Windows NT 6.1; ...)
  • IE8: Mozilla/4.0 (совместимо; MSIE 8.0; Windows NT 6.1; Trident/4.0; ...)
  • IE8 Совместимость Вид: Mozil la/4.0 (совместим; MSIE 7.0; Windows NT 6.1; Trident/4.0; ...)
  • IE9: Mozilla/5.0 (совместимо; MSIE 9.0; Windows NT 6.1; Trident/5.0)
  • IE9 Совместимость: Mozilla/4.0 (совместимый; MSIE 7.0; Windows NT 6.1; Trident/5.0; ...)

Обратите внимание, что некоторые несущественные значения в строках игнорируются, мы только необходимо сосредоточить внимание на некоторых критических значений, которые могут быть объединены, чтобы решить режим просмотра, как MSIE версии NO , и Trident режим NO ..

Здесь приходит окончательное решение:

var agentStr = navigator.userAgent; 
    var mode; 
    if (agentStr.indexOf("Trident/5.0") > -1) { 
     if (agentStr.indexOf("MSIE 7.0") > -1) 
      mode = "IE9 Compatibility View"; 
     else 
      mode = "IE9"; 
    } 
    else if (agentStr.indexOf("Trident/4.0") > -1) { 
     if (agentStr.indexOf("MSIE 7.0") > -1) 
      mode = "IE8 Compatibility View"; 
     else 
      mode = "IE8"; 
    } 
    else 
     mode = "IE7"; 

    document.title = "Browser Mode:\t" + mode; 
    //document.write(navigator.userAgent); 

Что-то другое: stackoverflow.com/questions/11865188/does-the-windows-8-internet-explorer-10- still-have-quirksmode # 11865561, где они объясняют режим 2 IE10 quirks. Относительно вашей ситуации. Надеюсь, поможет.

+0

Я уверен, что он хочет, чтобы сайт * NOT * запускался в режиме совместимости. Кроме того, в этом вопросе он показывает, что он знает, как использовать заголовок 'X-UA-Compatible'. –

+1

Режим совместимости - это не то же самое, что у EmulateIE7. – nullability

+0

AFAIK, режим совместимости * почти * то же, что и EmulateIE7, за исключением некоторых деталей в строке 'User-agent'. Но оба они не должны иметь никакого отношения к режиму Quirks *, если страница имеет ''. –

Смежные вопросы