2009-05-22 2 views
4

Для нашего веб-приложения мы отправляем X-UA-Compatible -> IE = EmulateIE7 для всех страниц. Тем не менее, кнопка просмотра совместимости рядом с кнопкой «Обновить» все еще отображается.Кнопка просмотра совместимости IE8 включена, даже если IE = EmulateIE7

1) Ожидается ли такое поведение? 2) Не должен ли HTTP-заголовок заставлять браузер отображаться в режиме IE7 (с включенными Quirks + IE7Standards), а затем отображать кнопку просмотра совместимости?

Если сайт не готов к работе с IE8, есть ли способ заставить IE7 эмуляцию и, следовательно, отключить эту кнопку?

+0

Я смог проверить, что страница отображается в режиме Quirks, вставив javascript: alert (document.documentMode); в адресную строку. Даже когда он находится в режиме Quirks, почему отображается кнопка просмотра совместимости? – Nishith

ответ

14

В соответствии с Just The Facts: Recap of Compatibility View у вас есть , объявленный [ваш сайт] «готовым» для Internet Explorer 8 с использованием тега версии. не должна отображаться кнопка Compatibility View:

Владельцы сайта всегда контроль над их содержанием. По умолчанию Internet Explorer использует переключение DOCTYPE для определения режима Quirks v. Standards (опять же, по умолчанию стандарты стандартов соответствуют стандарту IE8). Владельцы сайтов могут использовать тег X-UA-Compatible абсолютно декларативно о том, как они хотели бы, чтобы их сайт отображал и сопоставлял страницы режима стандартов со стандартами IE7. Использование тега X-UA-Compatible отменяет представление совместимости на клиенте.

Иногда кнопка просмотра совместимости не отображается. Кнопка расположена в адресной строке рядом с кнопками «стоп» и «обновление». Есть несколько случаев, когда нет никаких действий для пользователя не принимают и, таким образом, кнопка Compatibility View не будет показывать:

  • Если вы просматриваете страницу внутренних к-браузер Internet Explorer (например, о: InPrivate)
  • Если вы просматриваете страницу, которая объявила, что она «готова» для Internet Explorer 8 с использованием заголовка версии/HTTP-заголовка (неважно, запускает ли этот тег Quirks, стандарты IE7 или стандарты IE8, кнопка не будет отображаться)
  • Если вы просматриваете страницу интрасети и у вас установлен флажок «Отображать сайты интрасети в режиме совместимости»
  • Если вы просматриваете какую-либо веб-страницу и у вас установлен флажок «Показать все веб-сайты в режиме совместимости»
  • Если вы просматриваете веб-страницу, включенную в список обновлений совместимости Microsoft, и у вас есть «Include обновленные списки веб-сайтов от Microsoft»флажок выбран
  • Если вы переключены либо в„режим документа“или„настройки браузера Mode“с помощью панели инструментов разработчика

Если вы используете заголовок HTTP, есть вы использовали Fiddler, чтобы убедиться, что заголовок X-UA-Compatible фактически доставляется на каждую страницу?

Если вы используете META метку, а затем в соответствии с META Tags and Locking in Future Compatibility:

Заголовок X-UA-Compatible не чувствительны к регистру; однако он должен отображаться в заголовке веб-страницы (раздел HEAD) перед всеми другими элементами, за исключением элемента TITLE и других элементов META.

Наконец, является IE8 на самом деле в Compatibility View, когда кнопка отображается? Если да, то возможно, что ваш сайт находится в списке совместимости IE8 от Microsoft, или в локальной конфигурации клиента:

  • Tools>Compatibility View Settings
  • Убедитесь, что ваш сайт не указан в сайтах вы добавили для совместимости
  • Попробуйте убрав обновленные списки веб-сайтов от Microsoft и перезапустить браузер
+1

Я подтвердил использование Fiddler, что все страницы получают заголовок, а «Инструменты разработчика» также подтверждают, что на сайте всегда используются правильные режимы документа «Quirks» или «IE7 Standards». Но кнопка сохранения все еще отображается. META не является вариантом - сайт довольно большой, и мы хотели бы управлять этим параметром на уровне заголовка HTTP-ответа HTTP. – Nishith

+0

Спасибо! Это фантастический ответ, и автор вопроса действительно должен его принять! – cowgod

0

я имел проблема на нашем сайте рабочей одежды, в результате чего мы сначала должны были использовать Meta EmulateIE7 для преодоления проблем CSS, когда IE8 был впервые выпущен. Позднее мы исправили проблему и добавили метатег X-UA-совместимый IE = 8

Мы заметили, что даже при очистке кеша браузеров IE8 по-прежнему сохраняет состояние кнопки совместимости, установленной пользователем. Для нас было важно преодолеть это, потому что это вызывало проблемы с скриптами при работе в режиме совместимости.

Мы решили проблему, имея X-UA-совместимый IE = 8 в начале всех страниц, а также добавляя его в IIS в качестве заголовка HTTP. Кнопка совместимости больше не отображается в браузерах посетителей =)

Надеюсь, это поможет!