W środowisku kontrolowanym przez domenę stwierdzam, że tryb zgodności jest uruchamiany na niektórych klientach (winXP / Win7, IE8 / IE9), nawet jeśli dostarczamy tagi X-UA, definicję! DOCTYPE i odpowiedź „IE = Edge” nagłówki. Ci klienci mają zaznaczone pole wyboru „wyświetlaj witryny intranetowe w widoku zgodności”. Właśnie to próbuję zastąpić.
Poniżej znajduje się dokumentacja, której użyłem, aby spróbować zrozumieć, w jaki sposób IE decyduje się faktycznie uruchomić tryb zgodności.
http://msdn.microsoft.com/en-us/library/ff406036%28v=VS.85%29.aspx
http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx
Właściciele witryn zawsze mają kontrolę nad swoją zawartością. Właściciele witryn mogą zdecydować się na użycie tagu kompatybilnego z X-UA, aby absolutnie zadeklarować sposób wyświetlania swojej witryny i mapować strony w trybie standardowym na standardy IE7. Użycie tagu kompatybilnego z X-UA zastępuje widok zgodności na kliencie.
Google za „Defining Document Compatibility” , niestety silnik SPAM nie pozwala mi publikować więcej niż 2 adresy URL.
To jest ASP .NET
aplikacja internetowa i zawiera następujące definicje na stronie wzorcowej:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
</head>
i web.config
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=Edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Użyłem programu Fiddler, aby sprawdzić, czy nagłówek jest rzeczywiście wprowadzany poprawnie.
Rozumiem, że przy tych ustawieniach powinienem być w stanie zastąpić ustawienie przeglądarki „Wyświetlaj witryny intranetowe w widoku zgodności”. Ale w zależności od klienta stwierdziłem, że niektóre z nich nadal będą uruchamiać tryb zgodności. Wydaje się również, że dotyczy to raczej poziomu komputera, a raczej ustawienia grupy zasad, ponieważ uzyskuję różne wyniki, nawet gdy używam tego samego zestawu poświadczeń na różnych klientach.
Wyłączenie pola wyboru Ustawienia widoku zgodności załatwia sprawę. Ale faktycznym celem jest upewnienie się, że aplikacja jest renderowana dokładnie w ten sam sposób, niezależnie od ustawień klienta.
Jakieś myśli i czego mógłbym przegapić? Czy w ogóle można zmusić IE do wyświetlania stron bez uruchamiania trybu Compat?
stukrotne dzięki,
Jaume
PS: strona jest obecnie w fazie rozwoju i oczywiście nie ma jej na liście kompatybilności Microsoftu, ale sprawdziłem też na wszelki wypadek.
Google za „Understanding the Compatibility View List” , niestety silnik SPAM nie pozwala mi na publikowanie więcej niż 2 adresów URL.
Zmiana nagłówka na następujący rozwiązuje problem:
<html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
źródło
Aktualizacja: więcej przydatnych informacji Co robi <meta http-equiv = "X-UA-Compatible" content = "IE = edge">?
Może ten adres URL może ci pomóc: Aktywacja trybów przeglądarki za pomocą Doctype
Edycja: Dzisiaj mogliśmy zastąpić widok zgodności:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
źródło
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
IE=Edge
ponieważ pytanie dotyczy wyłączenia trybu zgodności.W przypadku programistów Node / Express możesz użyć oprogramowania pośredniego i ustawić to za pośrednictwem serwera.
app.use(function(req, res, next) { res.setHeader('X-UA-Compatible', 'IE=edge'); next(); });
źródło