Какой смысл в X-UA-совместимом? - PullRequest
8 голосов
/ 04 сентября 2011

Я вообще не понимаю для чего <meta http-equiv="X-UA-Compatible" content="..." /> ...

Может кто-нибудь объяснить ...

  • Для чего это нужноразличные значения content?
  • Что это делает для разных браузеров?
  • Что это за мотивация?
  • Почему он существует?

Ответы [ 2 ]

21 голосов
/ 01 мая 2012

Этот метатег (или заголовок http) имеет значение только для IE8 и выше.Это способ заставить IE отображать страницу так, как это делала бы более старая версия.Пропуск этого эффекта не имеет никакого эффекта, он используется только как эффект.

Возможные значения: "IE =", за которым следует любое из следующего:

  • Edge - отображать как любую последнюю версиюIE равен
  • IE9 - визуализация в IE9 в стандартном режиме
  • эмуляция IE9 - визуализация в IE9, но использование <!DOCTYPE> для определения режима
  • IE8 - визуализация в IE8в стандартном режиме
  • эмулировать IE8 - отображать как IE8, но использовать <!DOCTYPE> для определения режима
  • IE7 - отображать как IE7 в стандартном режиме
  • эмулировать IE7 - отображать какIE7, но используйте <!DOCTYPE> для определения режима
  • IE5 - визуализируйте как IE7 в режиме причуд

Кроме того, вы можете добавить запятую, а затем Chrome = 1, чтобы сообщить IEвизуализировать страницу с помощью Google Chrome Frame, если она установлена.Таким образом, у вас может быть тег, который выглядит следующим образом:

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

Или вместо этого вы также можете указать использование GCF для определенной версии IE и ниже, например:

<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=IE8">

Что означает использование GCF, если он установлен и IE имеет версию 8 или ниже, в противном случае визуализировать как последнюю установленную версию IE.

Итак, очевидно, что полезно иметь возможностьзаставить старые версии IE использовать GCF, но, вероятно, это не было целью Microsoft, когда они это реализовали.Его можно использовать для совместимости со старыми сайтами, которые работают только в старых версиях IE и не могут быть легко исправлены, но это глупо.Лично я считаю это полезным для тестирования.Поскольку обычно тестировать несколько версий IE с одного компьютера разработки не так просто, это дает достойное решение.

14 голосов
/ 04 сентября 2011

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

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">

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

...