Treść „Kompatybilna z 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. Co właściwie oznacza to stwierdzenie?

  2. Niektóre przykłady wykorzystują ,do oddzielenia wersji IE, podczas gdy inne wykorzystują ;; który jest poprawny?

  3. Kolejność IE=9; IE=8; IE=7; IE=EDGEma pewne znaczenie, chcę to wiedzieć.

Edycja : używam<!DOCTYPE html>

Kuttan Sujith
źródło
myślę, że IE = 9 nie nadaje sięX-UA-Compatible
Krish
3
Google tak naprawdę poleca: developers.google.com/web-toolkit/doc/latest/DevGuideIE9
PlantTheIdea

Odpowiedzi:

328

Jeśli wspierasz IE, dla wersji Internet Explorera 8 i nowszych, to:

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

Zmusza przeglądarkę do renderowania jako standardy dla tej konkretnej wersji. To nie jest obsługiwane dla IE7 i niższych.

W przypadku oddzielenia średnikiem ustala poziomy zgodności dla różnych wersji. Na przykład:

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

Renderuje IE7 i IE8 jako IE7, ale IE9 jako IE9. Pozwala na różne poziomy kompatybilności wstecznej. Jednak w prawdziwym życiu powinieneś wybrać tylko jedną z opcji:

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

Pozwala to na znacznie łatwiejsze testowanie i konserwację. Chociaż ogólnie bardziej przydatna wersja tego używa Emuluj:

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

Dla tego:

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

Zmusza przeglądarkę do renderowania zgodnie z najnowszymi standardami wersji.

Więcej informacji na temat MSDN można znaleźć na wiele sposobów ,

PlantTheIdea
źródło
9
kolejność IE = 9; IE = 8; IE = 7; IE = EDGE ma pewne znaczenie, chcę wiedzieć
Kuttan Sujith,
Mam trochę luki w moim rozumieniu tego. Jeśli moim celem do testowania jest IE8, ale nie chcę łamać IE7, co ustawiłbyś ten metatag? I czy używają tego inne przeglądarki?
Snekse
2
IE7 tego nie rozpozna, został zaimplementowany najpierw w IE8. Całe odniesienie do IE7 powyżej brzmi, jeśli na przykład używasz IE7 jako podstawy do testowania i chcesz, aby wszystkie bardziej nowoczesne wersje IE były renderowane tak, jak by to było w standardach IE7. żadna inna przeglądarka nie używa tego znacznika.
PlantTheIdea
1
IE10 dobrze renderuje stare aplikacje internetowe z IE = 8 (YMMV), jednak emulacja IE8 IE8 psuje się. Ta UA: content="IE=8; IE=11"daje tryb przeglądarki IE10 Compat Tryb dokumentów IE8 w IE10 i Edge trybu dokumentu w IE11. Jednym z problemów z przypisaniem IE10 i IE11 UA jest to, że Microsoft usunął komentarze warunkowe .
Cofnij
Na podstawie tego metatagu IE11 nie emuluje IE8, zakłada IE11 (tak jak podano na liście oddzielonej średnikami). Lista ta wyjaśniałaby również powrót do standardów IE8, ponieważ IE10 nie był świadomy istnienia IE11, podobnie jak IE8 nie mógł zastosować standardów IE9. Czy próbowałeś po prostu użyć content="IE=8"? A najlepiej content="IE=EmulateIE8"?
PlantTheIdea
4

W niektórych przypadkach może być konieczne ograniczenie wyświetlania strony internetowej do trybu dokumentu obsługiwanego przez starszą wersję Internet Explorera. Możesz to zrobić, wyświetlając stronę z nagłówkiem zgodnym z x-ua. Aby uzyskać więcej informacji, zobacz Określanie starszych trybów dokumentów.
- https://msdn.microsoft.com/library/cc288325

Tak więc ten tag służy do przyszłej weryfikacji strony, tak że starszy / zgodny silnik jest używany do renderowania go w taki sam sposób, jak zamierzał twórca.

Upewnij się, że sprawdziłeś, czy działa poprawnie z określoną wersją IE.

Ujjwal Singh
źródło