«X-UA-совместимый» контент = «IE = 9; IE = 8; IE = 7; IE = EDGE»

233
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
  1. Собственно, в чем смысл этого утверждения?

  2. Некоторые примеры используют ,для разделения версий IE, а некоторые используют ;; что правильно?

  3. Орден IE=9; IE=8; IE=7; IE=EDGEимеет какое-то значение, я хочу это знать.

Редактировать : я использую<!DOCTYPE html>

Куттан Суджит
источник
я думаю, что IE = 9 не подходит дляX-UA-Compatible
Krish
3
Google фактически рекомендует это: developers.google.com/web-toolkit/doc/latest/DevGuideIE9
PlantTheIdea
1
twigstechtips.blogspot.com/2010/03/…
Куттан Суджит

Ответы:

328

Если вы поддерживаете IE, для версий Internet Explorer 8 и выше, это:

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7" />

Принудительно отображает браузер в соответствии со стандартами данной версии. Это не поддерживается для IE7 и ниже.

Если вы разделяете точку с запятой, она устанавливает уровни совместимости для разных версий. Например:

<meta http-equiv="X-UA-Compatible" content="IE=7; IE=9" />

Отображает IE7 и IE8 как IE7, но IE9 как IE9. Это допускает различные уровни обратной совместимости. В реальной жизни, однако, вы должны выбрать только один из вариантов:

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

Это позволяет значительно упростить тестирование и обслуживание. Хотя обычно более полезная версия этого использует Emulate:

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

Для этого:

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

Это заставляет браузер выполнять рендеринг в соответствии со стандартами самой последней версии.

Для получения дополнительной информации, есть много, чтобы прочитать о MSDN ,

PlantTheIdea
источник
9
порядок IE = 9; IE = 8; IE = 7; IE = EDGE имеет какое-то значение, я хотел бы знать это
Kuttan Sujith
У меня есть пробел в моем понимании этого. Если моей целью для тестирования является IE8, но я не хочу ломать IE7, для чего вы установите этот метатег? И используют ли другие браузеры это?
Снексе
2
IE7 не распознает это, он был впервые реализован в IE8. Вся ссылка на IE7 выше - это, например, если вы использовали IE7 в качестве основы для тестирования и хотели, чтобы все более современные версии IE отображались так же, как в стандартах IE7. другие браузеры не используют этот тег.
PlantTheIdea
1
IE10 хорошо отображает старые веб-приложения с IE = 8 (YMMV), однако эмуляция IE8 в IE8 не работает. Этот UA: content="IE=8; IE=11"предоставляет браузеру режим IE10 Compat Document, режим IE8 стандартов в IE10 и режим Document edge в IE11. Одной из проблем с назначением IE10 и IE11 UA является то, что Microsoft удалила условные комментарии .
обратный
Основываясь на этом метатеге, IE11 не будет эмулировать IE8, он будет предполагать IE11 (как это указано в списке через точку с запятой). Этот список также объясняет отступление к стандартам IE8, потому что IE10 не знал о существовании IE11, так же как IE8 не мог применять стандарты IE9. Вы пробовали просто использовать content="IE=8"? Или, предпочтительно, content="IE=EmulateIE8"?
PlantTheIdea
4

В некоторых случаях может потребоваться ограничить отображение веб-страницы режимом документа, поддерживаемым более ранней версией Internet Explorer. Вы можете сделать это, обратив страницу с x-ua-совместимым заголовком. Для получения дополнительной информации см. Указание устаревших режимов документов.
- https://msdn.microsoft.com/library/cc288325

Таким образом, этот тег используется для проверки веб-страницы в будущем , так что более старый / совместимый механизм используется для ее визуализации так же, как задумал создатель.

Убедитесь, что вы проверили его для корректной работы с указанной версией IE.

Уджвал Сингх
источник