Zastąp tryb zgodności z intranetem IE8

200

Domyślnie IE8 zmusza strony intranetowe do trybu zgodności. Próbowałem zmienić nagłówek meta na IE8, ale nie potwierdza on nagłówka meta i po prostu korzysta z ustawień przeglądarki. Czy ktoś wie, jak to wyłączyć?

sanpall
źródło
1
Wypróbuj stackoverflow.com/questions/2742853/… , który zadziałał dla mnie.
David Kolar
2
Dodaj to wewnątrz tagu strony: <meta http-equiv = „Zgodny z X-UA” content = „IE = 8” /> (kierowanie na żądaną wersję IE). Uwaga: NIE zmieni to faktu, że przeglądarka mówi, że jest w trybie zgodności (zwanym trybem przeglądarki), ale strona będzie renderowana w trybie standardów IE8. Będziesz wtedy musiał zmienić javascript, aby sprawdzić, czy „trójząb” jest sprawdzany pod kątem IE8 lub nowszego. Zobacz: blogs.msdn.com/b/mikeormond/archive/2008/09/25/…
n00b
@ n00b - nie ma to wpływu na moją stronę.
Pete,
Rozumiem, że metatag musi mnie natychmiast po tagu głowy. Zauważyłem, że niektóre skrypty wstawią się do głowy o indeksie 0; dlatego metatag nie będzie już po nagłówku.
AMissico,

Odpowiedzi:

224

Możliwe jest zastąpienie trybu zgodności w intranecie.

W przypadku IIS wystarczy dodać poniższy kod do pliku web.config. Pracował dla mnie z IE9.

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <add name="X-UA-Compatible" value="IE=edge" />
    </customHeaders>
  </httpProtocol>
</system.webServer> 

Odpowiednik dla Apache:

Header set X-UA-Compatible: IE=Edge

A dla nginx:

add_header "X-UA-Compatible" "IE=Edge";

I dla express.js:

res.set('X-UA-Compatible', 'IE=Edge')
Andras Csehi
źródło
20
To jest poprawna odpowiedź. Metatag nie działa, ale działa dodawanie nagłówka odpowiedzi. Więcej informacji tutaj: social.msdn.microsoft.com/Forums/is/iewebdevelopment/thread/…
Russau
3
Zgodzić się. To powinna być poprawna odpowiedź, ponieważ poprawnie zastępuje ustawienia intranetu tylko dla tej witryny.
enriquein
9
(dla wyjaśnienia: Działa w trybie dokumentu, ale nie w trybie przeglądarki)
codeulike
21
To nie jest poprawna odpowiedź. ta odpowiedź zmienia tryb dokumentu NIE zmienia ważnego „trybu przeglądarki”. Wciąż szukam rozwiązania tego problemu.
DeveloperChris
4
To nie jest poprawna odpowiedź, ponieważ jest specyficzna dla .net (nawet nie potwierdzając faktu).
Daddy32,
84

Michael Irigoyen ma rację, ALE jest to trochę bardziej skomplikowane ...

jeśli korzystasz ze wspaniałego bojlera autorstwa Paula Irisha, będziesz mieć coś takiego: -

<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

To NIE będzie działać zgodnie z oczekiwaniami i wymusi w IE tryb zgodności w środowisku intranetowym, jeśli zaznaczysz opcję „Wyświetl strony intranetowe w widoku zgodności”. Musisz usunąć warunkowe komentarze IE, aby zapobiec trybowi zgodności z intranetem.

Tak więc następujący kod będzie działał:

<!doctype html>
<html class="no-js" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

Zasadniczo, jeśli uruchomisz warunkowe komentarze IE przed <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">instrukcją, będziesz zmuszony do przejścia do trybu zgodności w środowisku intranetowym, jeśli używasz IE9 z ustawieniami domyślnymi.

AKTUALIZACJA - INFORMACJE DODATKOWE: Należy jednak pamiętać, że istnieje sztuczka, która sprawi, że HTML-Boilplate będzie działał:

Dodaj pusty, warunkowy komentarz przed DOCTYPE. I uwaga, jak również, że gdy robisz to , to można też dodawać komentarzy warunkowych wokół X-UA-Compatibledyrektywy, dzięki czemu strona HTML5 ważne jak dobrze. Na przykład:

<!--[if HTML5]><![endif]-->
<!doctype html>
<!--[if the boilerplate conditionals goes here<![endif]-->
<head>
<!--[if !HTML5]>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<![endif]-->

Wpis na blogu zainspirowany pierwszą częścią tej odpowiedzi zawiera więcej szczegółów. A tak na marginesie: jak wspomniano w tym blogu, można również wymienić komentarza warunkowego przed DOCTYPE z pół warunkowym komentarzu z żadnym warunkiem : <!--[]-->. Tak więc tak:

<!--[]-->
<!doctype html>
<!--[if the boilerplate conditionals goes here<![endif]-->
<head>
<!--[if !HTML5]>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<![endif]-->

Należy jednak pamiętać, że ten drugi wariant ( <--[]--><!DOCTYPE html>), jak wyjaśniono np. W tej odpowiedzi na inne pytanie , aktywuje dobrze znany problem, który - w przypadku starszych wersji IE bez obsługi X-UA-Compatioble(czytaj: dla IE7 i IE6) - spowoduje włączenie przeglądarki do dziwaczny tryb.

Andrzej
źródło
To nie rozwiązało problemu. Jednak FYI, dodanie „Zgodny z X-UA” jako DID nagłówka naprawia problem!
Scott Rippey
34

Po rozwinięciu menu „Narzędzia” i wybraniu „Ustawienia widoku zgodności” W tym oknie dialogowym na dole znajduje się ustawienie „Wyświetlaj strony intranetowe w trybie zgodności”. Jeśli odznaczysz to, powinno to rozwiązać problem, a IE użyje trybu opartego na DOCTYPE.

PilotBob
źródło
19
Nie przegłosowałem, ale zgaduję, że to dlatego, że odpowiedziałeś z perspektywy użytkownika (co użytkownik powinien zrobić). To pytanie pochodzi od programisty i pyta, jak rozwiązać problem, nie wymagając od użytkownika niczego konkretnego.
Roy Tinker,
1
Ponadto nie pozwala to zachować zgodności ze starymi aplikacjami. Jeśli odznaczysz to ustawienie, twoje stare aplikacje mogą ulec awarii bez możliwości ich aktualizacji. Myślę, że pytający szuka sposobu na wymuszenie trybu standardów, gdy wszystkie inne aplikacje w intranecie wymagają zaznaczenia pola wyboru dla trybu zgodności.
Andrew Lewis,
2
Myślę, że odpowiedział na to z perspektywy programisty. „... IE użyje trybu bazowego na DOCTYPE”. Zobacz: msdn.microsoft.com/en-us/library/ms535242%28VS.85%29.aspx Jeśli firma korzysta z usługi Active Directory, zmiany ustawień przeglądarki mogą być propagowane przez administratora. Nie możesz tego zrobić za pomocą FireFox!
Nate Zaugg
@AndrewLewis być może. Ale na pasku adresu URL znajduje się przycisk trybu zgodności, który ustawia przeglądarkę w trybie zgodności dla tej konkretnej witryny. Możesz też dodać je ręcznie w oknie dialogowym. Po raz kolejny można to zrobić na całym świecie przez dział IT.
PilotBob,
2
@PilotBob, jeśli masz ponad 120 000 użytkowników i setki (jeśli nie tysiące) witryn intranetowych do obsługi, nie jest to realne rozwiązanie.
rok
19

W odpowiedziach na to pytanie jest pewien zamieszanie.

Najważniejszą odpowiedzią jest obecnie rozwiązanie po stronie serwera, które ustawia flagę w nagłówku http, a niektóre komentarze wskazują, że rozwiązanie wykorzystujące metatag po prostu nie działa.

Myślę, że ten wpis na blogu zawiera ładny przegląd sposobu korzystania z metainformacji dotyczących zgodności. Z mojego doświadczenia wynika, że ​​opisano: http://blogs.msdn.com/b/cjacks/archive/2012/02/29/using-x- Kompatybilny z-do-tworzenia-trwałych-aplikacji-korporacyjnych.aspx

Główne punkty:

  • ustawienie informacji za pomocą metatagu i nagłówka działa
  • Metatag ma pierwszeństwo przed nagłówkiem
  • Metatag musi być pierwszym znacznikiem, aby upewnić się, że przeglądarka nie określa silnika renderowania wcześniej na podstawie heurystyki

Jedną ważną kwestią (i myślę, że z tego punktu wynika wiele nieporozumień) jest to, że IE ma dwie „klasy” trybów:

  1. Tryb dokumentu
  2. Tryb przeglądarki

Tryb dokumentu określa mechanizm renderowania (sposób renderowania strony internetowej).

Tryb przeglądarki określa, co ciąg IE użytkownika-agenta (UA) wysyła do serwerów, co domyślnie IE trybu dokumentu i jak IE ocenia komentarze warunkowe.

Więcej informacji o trybie dokumentu vs. trybie przeglądarki można znaleźć w tym artykule: http://blogs.msdn.com/b/ie/archive/2010/06/16/ie-s-compatibility-features-for- site-developers.aspx? Przekierowano = true

Z mojego doświadczenia wynika, że ​​metadane zgodności będą miały wpływ tylko na tryb dokumentu . Więc jeśli polegasz na wykrywaniu przeglądarki, to ci nie pomoże. Ale jeśli używasz funkcji wykrywania funkcji, powinna to być właściwa droga.

Polecam więc użycie metatagu (na stronie HTML) przy użyciu tej składni:

<meta http-equiv="X-UA-Compatible" content="IE=9,10" ></meta>

Uwaga: podaj listę trybów przeglądarki, które przetestowałeś.

Wpis na blogu odradza również korzystanie z EmulateIEX. Oto cytat:

To powiedziawszy, jedną rzeczą, która wydaje mi się dziwna, gdy aplikacja żąda EmulateIE7 lub EmulateIE8. Te tryby emulacji same są decyzjami. Zamiast sprecyzować, czego chcesz, pytasz o jedną z dwóch rzeczy, a następnie określasz, które z tych dwóch rzeczy, szukając gdzie indziej w kodzie DOCTYPE (a następnie próbując zrozumieć, czy ten DOCTYPE da ci standardy lub dziwactwa w zależności od jego zawartości - inne czasem mylące zadanie). Zamiast tego uważam, że rozsądniej jest bezpośrednio określić, czego chcesz, niż dać odpowiedź, która sama jest pytaniem. Jeśli chcesz standardów IE7, użyj IE = 7 zamiast IE = EmulujIE7. (Pamiętaj, że nie oznacza to, że nie powinieneś używać DOCTYPE - powinieneś.)

stefan.s
źródło
jak zmienić tryb przeglądarki?
Vishnudev K,
zdanie w trybie przeglądarki jest mylące
Justice Fist
@JusticeFist Tak, masz rację, dzięki. Próbowałem to poprawić.
stefan.s
1
@VishnudevK Jedyny znany mi sposób to korzystanie z narzędzi programistycznych. Ale prawdopodobnie chcesz programowego rozwiązania.
stefan.s
9

Wypróbuj ten metatag:

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

Powinien zmusić IE8 do renderowania w trybie standardowym IE8, nawet jeśli „Wyświetl strony intranetowe w widoku kompatybilności” jest zaznaczone [dla intranetu lub wszystkich stron], wypróbowałem to samo w IE 8.0.6

Ala 'Alnajjar
źródło
15
Nie.
Dennis C
11
To jest właściwie poprawne, ale MUSI pojawić się przed wszystkimi tagami META na stronie, w przeciwnym razie nie będzie działać.
Michael Irigoyen,
2
To mi nie działa. O ile mogę stwierdzić, IE8 „Wyświetlaj strony intranetowe w trybie zgodności” jest nie do zastąpienia
kodulike
6
(dla wyjaśnienia: Działa w trybie dokumentu, ale nie w trybie przeglądarki. Więc renderowanie jest naprawione, ale przeglądarka nadal udaje, że jest IE7)
codeulike
7

Nasz administrator systemu rozwiązał ten problem, odznaczając pole globalnie dla naszej organizacji. Użytkownicy nawet nie musieli się wylogowywać.

wprowadź opis zdjęcia tutaj

James Lawruk
źródło
1
To rozwiązanie działa idealnie, jeśli wszystkie witryny w intranecie mogą korzystać z najnowszych standardów internetowych. Jeśli jednak niektórzy nie mogą, to ta metoda niechcący je złamie ... Podchodzę ostrożnie.
7 ʙᴀᴋᴇʀ
4

Znalazłem działającą odpowiedź, która pozwala zastąpić zaznaczony widok zgodności z intranetem. Po prostu dodaj w zdarzeniu OnInit swojej strony ten wiersz (nie potrzebujesz meta lub web.config customHeader):

Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");
Cyrille Perrot
źródło
1
Odpowiedź specyficzna dla platformy programistycznej ... nawet bez określania platformy. Zgaduję, że mówisz o Visual Studio .NET? O ile mogę stwierdzić, zdarzenie „OnInit” nie istnieje (w JavaScript, Java, PHP, ....)
Stijn de Witt
3

Spróbuj umieścić następujące informacje w nagłówku:

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

Dzięki uprzejmości Paula Irish HTML5 Boilerplate (ale działa również w XHTML Transitional).

Gabe
źródło
3

Byłem w stanie zastąpić tryb zgodności, określając metatag jako PIERWSZĄ TAGĘ w sekcji head, nie tylko jako pierwszy metatag, ale jako i tylko jako BARDZO PIERWSZA TAGA .

Dzięki @ stefan.s za umieszczenie mnie w doskonałej odpowiedzi. Przed przeczytaniem miałem:

TO NIE DZIAŁAŁO

<head> 
<link rel="stylesheet" type="text/css" href="https://stackoverflow.com/qmuat/plugins/editors/jckeditor/typography/typography.php"/>
<meta http-equiv="x-ua-compatible" content="IE=9" >

usunęłam tag link z drogi i zadziałało

TO DZIAŁA :

<head><meta http-equiv="x-ua-compatible" content="IE=9" >

Tak więc klient IE8 ustawiony do używania zgodności renderuje stronę jako tryb standardowy IE8 - treść = „IE = 9” oznacza używanie najwyższego standardu dostępnego do IE9 włącznie.

PeteS_UK
źródło
2

To nie jest dokładnie rozwiązanie, ale uważam, że jest najlepsze. Na naszych stronach intranetowych mówimy ludziom, że dostęp do nich może mieć tylko Firefox, nie podoba nam się to tutaj użytkownicy IE. Sprawdź agenta użytkownika po stronie serwera lub klienta i odmów mu dostępu z IE. Jestem programistą .NET.

Kajman
źródło
1
Podoba mi się twój pomysł. ale nie mamy tutaj firefoxa.
Dennis C
22
Najgorszy. Sugestia. Zawsze. To tak źle, jak wszystkie witryny intranetowe, które są tylko dla IE. Spróbuj trochę dodatkowej pracy i spraw, aby Twoje rzeczy działały we wszystkich popularnych przeglądarkach. To nie jest takie trudne.
mhenry1384
2
@ mhenry1384 Chcesz wyjaśnić, dlaczego to straszna sugestia, aby mieć zamknięty system intranetowy? Nie musisz obsługiwać kwarków dla starych przeglądarek. Wiesz, że Twoi użytkownicy uzyskają zamierzone wrażenia. To nie jest system publiczny, kogo to obchodzi, czy nadal wspierasz IE 5.5? Mówię moim publicznym użytkownikom o aktualizacji. I tak nie powinienem marnować czasu na systemy backendowe, to społeczeństwo mnie potrzebuje. To nie jest tak, że zamykam go na IE 6 i wymagam ActiveX jak niektóre. Na przykład mój system pozwala Firefox 6 i nowszym. Więc jeśli Firefox 27 wyjdzie, nadal działa. Proszę oddać mi głos lub przedstawić rzeczywistą argumentację.
Caimen
2
Każda strona intranetowa, z której korzystałem, która była zablokowana w określonej przeglądarce, jest zablokowana w przeglądarce IE. To doprowadza mnie do szału, ponieważ nienawidzę IE tak bardzo, jak następnego faceta. Zmuszanie użytkowników do korzystania z wybranej przeglądarki (nie ich), nawet jeśli jest to Cokolwiek, ALE IE, wydaje się być sprzeczne z siecią, nawet intranetową. Zwykle nie jest tak trudno stworzyć stronę internetową działającą w IE7 / 8/9, szczególnie jeśli używasz bibliotek takich jak jQuery. Pozwól użytkownikom korzystać z tego, czego chcą.
mhenry1384
2
Na przykład witryna napisana dla Firefoksa 10 prawie zawsze będzie działać doskonale na IE9 bez modyfikacji. Ograniczenie użytkowników do korzystania z IE9 oznacza, że ​​dzieje się coś jeszcze. Oznacza to, że masz idealną misję, a nie ktoś, kto próbuje napisać dobre oprogramowanie internetowe. Jeśli chodziło tylko o to, by nie mieć czasu na testowanie przeglądarek innych niż Firefox, czy ograniczasz również korzystanie z Opery? [Przepraszam, że jestem taki pracowity. Powinienem wrócić do rozwiązania tego cholernego problemu z IE8, który mam ... :-)]
mhenry1384,
1

Walczyłem z tym problemem i chciałem pomóc w dostarczeniu unikalnego rozwiązania i wglądu.

Niektóre frameworki oparte na AJAX wstrzykną skrypty javascript i arkusze stylów na początku, <head>a zrobienie tego wydaje się uniemożliwiać prawidłowe funkcjonowanie dobrze ustalonego metatagu. W tym przypadku odkryłem, że bezpośrednie wstrzykiwanie do nagłówka odpowiedzi HTTP, podobnie jak odpowiedź Andrasa Csehi rozwiąże problem.

Jednak dla tych, którzy używają serwletów Java, dobrym sposobem na rozwiązanie tego problemu jest użycie filtru ServletFilter.

public class EmulateFilter implements Filter {

@Override
public void destroy() {
}

@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
        FilterChain arg2) throws IOException, ServletException {
    HttpServletResponse response = ((HttpServletResponse)arg1);
    response.addHeader("X-UA-Compatible", "IE=8");
    arg2.doFilter(arg0, arg1);
}

@Override
public void init(FilterConfig arg0) throws ServletException {
}

}
wałek klonowy
źródło
1

Możemy rozwiązać ten problem w środowisku Spring-Apache-tomcat, dodając jedną linię w metodzie RequestInterceptor -

//before the actual handler will be executed
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler)
throws Exception {

// Some logic

// below statement ensures IE trusts the page formatting and will render it acc. to IE 8 standard.
response.addHeader("X-UA-Compatible", "IE=8"); 

return true;
}

Odsyłacz z - Jak utworzyć filtr i zmodyfikować nagłówek odpowiedzi Obejmuje on sposób rozwiązania tego problemu za pomocą RequestInterceptor (Spring).

Jack Sparrow
źródło
0

Jeśli chcesz, aby Twoja witryna wymusiła tryb standardów IE 8, użyj tego metatagu wraz z prawidłowym DOCTYPE:

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

Zwróć uwagę na wartość „EmulujIE8” zamiast zwykłego „IE8”.

Zdaniem deweloperów IE powinno to oznaczać: „Wyświetl standardy DOCTYPE w trybie norm IE8; Wyświetl dziwactwa DOCTYPE w trybie dziwactw. Użyj tego znacznika, aby zastąpić widok zgodności na komputerach klienckich i wymusić standardy na standardy IE8”.

Więcej informacji na temat tego postu na blogu IE: http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx

Ashtonium
źródło
0

To pytanie jest kopią trybu Force „Internet Explorer 8” w intranecie .

Odpowiedzi tam wskazują, że nie można wyłączyć widoku zgodności (po stronie serwera) - https://stackoverflow.com/a/4130343/24267 . Z pewnością wydaje się, że tak jest, ponieważ żadna z sugestii, które wypróbowałem, nie zadziałała. W IE8 „Tryb przeglądarki” zostaje ustawiony na widok zgodności z Internet Explorerem 8 bez względu na to, jaki rodzaj nagłówka zgodnego z X-UA wysyłasz.

Musiałem zrobić specjalną obsługę dla IE7 i trybu zgodności, co spowodowało, że przeglądarka wyświetla się przy użyciu IE8, ale zgłosiła, że ​​to IE7, zepsuła mój kod. Tak naprawiłem swój kod (wiem, że to okropny hack i powinienem testować funkcje, a nie wersje przeglądarki):

isIE8 = navigator.appVersion.indexOf („MSIE”)! = -1 && parseFloat (navigator.appVersion.split („MSIE”) [1]) == 8;
if (! isIE8 && navigator.appVersion.indexOf („MSIE”)! = -1 && parseFloat (navigator.appVersion.split („MSIE”) [1]) == 7 && navigator.appVersion.indexOf („Trident”) ! = -1) {
    // Kłamca, to jest IE8 w trybie zgodności.
    isIE8 = true;
}
mhenry1384
źródło
0

Miałem ten sam problem. Działało za pomocą

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
Sandro
źródło
0

Dodaj to wewnątrz tagu strony (kierując na żądaną wersję IE):

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

Uwaga: NIE zmieni to faktu, że przeglądarka mówi, że jest w trybie zgodności (zwanym trybem przeglądarki), ale strona będzie renderowana w trybie standardów IE8. Jeśli nadal NIE wyświetla się tak, jak chcesz, to prawdopodobnie dlatego, że masz JavaScript, który błędnie sprawdza wersję IE. Zobacz następujący post na blogu, aby ustalić, z której właściwości należy wyłączyć klucz, ponieważ nawet jeśli ustawisz metatag zgodny z X-UA, ciąg agenta użytkownika nadal będzie mówił MSIE 7.0 .

W moim przypadku dla poprawki musiałem dodać kontrolę trybu zgodności IE7. Zrobiłem to za pomocą prostego kodu javascript:

                //IE8 and later will have the word 'trident' in its user agent string.
                if (navigator.userAgent.indexOf("Trident")>-1) { //do something }
n00b
źródło
0

Dla każdego, kto to czyta i chce wyłączyć to przez GPO dla wszystkich użytkowników, jest to ustawienie:

Konfiguracja komputera / Szablony administracyjne / Składniki systemu Windows / Internet Explorer / Widok zgodności / Włącz tryb normalny programu Internet Explorer dla lokalnego intranetu

chociaż edycja web.config naprawiła to dla mnie.

Schrodo_Baggins
źródło
Aby przejść do Edytora lokalnych zasad grupy , możesz uruchomić gpedit.msc z poziomu Uruchom.
ROMANIA_inżynier
0

Zmień nagłówki w .htaccess

BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie

Znaleźć rozwiązanie tego problemu tutaj: https://github.com/h5bp/html5-boilerplate/issues/378

użytkownik1858301
źródło
Nie wszyscy używają Apache
Burjua
0

Komentarz Stefana S na temat trybu dokumentu i trybu przeglądarki był bardzo istotny dla mojego problemu.

Mam na stronie metadane X-UA-Content, ale po stronie klienta testowałem wersję przeglądarki za pośrednictwem navigator.appVersion. Ten test nie odzwierciedla metadanych, ponieważ daje tryb przeglądarki, a nie tryb dokumentu.

Odpowiedzią było dla mnie przetestowanie document.documentModeczegoś takiego:

function IsIE(n)
{
    if (navigator.appVersion.indexOf("MSIE ") == -1) return false;
    var sDocMode = document.documentMode;
    return (isFinite(sDocMode) && sDocMode==n);
}

Teraz mój metatag X-UA-Content odzwierciedla się w teście przeglądarki.

Dlaczego robię takie marne rzeczy, jak testowanie przeglądarki? Prędkość. Różne moje dodatki jQuery, takie jak tableorter, są po prostu zbyt wolne na IE6 / 7 i chcę je wyłączyć. Nie jestem pewien, czy testowanie funkcji przeglądarki może pomóc mi rozwiązać to inaczej.

Herc
źródło