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

Force IE8 * не * использовать представление совместимости

Просто обновил мой сайт до более нового, гораздо более стандартного дизайна. Мой предыдущий дизайн был таким хламом, что мне пришлось использовать тег IE = EmulateIE, чтобы заставить эмуляцию IE7.

К сожалению, я считаю, что браузеры могут кэшировать этот параметр из предыдущих посещений, в результате чего мой новый сайт (который отлично смотрится без нажатия кнопки) снова выглядит мусором...

Есть ли какой-либо противоположный тег, который я мог бы использовать, или какая-то магия, которую я могу сделать PHP для HTTP-заголовков, отключить кеширование этого параметра?

4b9b3361

Ответ 1

В отсутствие заголовка http-equiv, совместимого с X-UA, режим совместимости определяется !DOCTYPE (или отсутствием !DOCTYPE, в зависимости от ситуации). Для диаграммы, в которой !DOCTYPE вы можете найти, какой режим (в разных браузерах) см. Здесь:

http://hsivonen.iki.fi/doctype/ (Вам нужно прокрутить вниз в нижней части страницы.)

Вы можете переопределить это поведение, используя элемент meta, чтобы указать заголовок http-equiv, совместимый с X-UA, например: <meta http-equiv="X-UA-Compatible" content="IE=edge" >

(Примечание: IE = край идет с самой высокой доступной версией - в настоящее время IE8 от этой публикации - или можно явно указать IE8.)

Для получения дополнительной информации см. здесь: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx

Ответ 2

Вы также можете установить заголовок X-UA-Compatible в Apache через конфигурационный файл или файл .htaccess, используя приведенный ниже код. Кредит отправляется html5boilerplate.com

# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------

# Force the latest IE version, in various cases when it may fall back to IE7 mode
# github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it installed for a better experience for the poor IE folk

<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    BrowserMatch MSIE ie
    Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
  </IfModule>
</IfModule>

<IfModule mod_headers.c>
#
# Because X-UA-Compatible isn't sent to non-IE (to save header bytes), we need to inform proxies that content changes based on UA
#
  Header append Vary User-Agent
# Cache control is set only if mod_headers is enabled, so that unncessary to declare
</IfModule>

Ответ 3

IE никогда не будет кэшировать параметр X-UA-Compatibility самостоятельно. Единственная другая возможность заключается в том, что пользователи сайта нажали кнопку "Совместимость" на адресной строке, прежде чем вы установили метатег X-UA-Compatbile. Затем домен вашего сайта появится в списке, хранящемся локально на клиентской машине. Я написал сообщение в блоге о том, как владельцы сайтов могут обрезать свои домены из этого локально сохраненного списка, если/когда сайт будет обновлен, чтобы быть совместимым с IE8. http://blogs.msdn.com/ie/archive/2009/07/01/ie-compatibility-list-pruning.aspx

Ответ 4

Я знаю, что это сообщение устарело, но я нахожу его добавление в ваш файл .htaccess:

Header set X-UA-Compatible "IE=edge"

... более управляемым, чем добавление его на страницы.

Надеюсь, что это поможет кому-то.