Pracuję dla klienta, który wymusza tryb zgodności na wszystkich stronach intranetowych. Zastanawiałem się, czy istnieje jakiś tag, który mogę umieścić w swoim HTML, który wymusza wyłączenie trybu zgodności.
html
internet-explorer
Al Katawazi
źródło
źródło
Odpowiedzi:
Istnieje tryb „krawędzi” .
Z połączonej strony MSDN:
Jednak tryb „krawędzi” nie jest zalecany w zastosowaniach produkcyjnych:
Naprawdę nie do końca rozumiem dlaczego. Ale zgodnie z tym najlepszym sposobem, aby przejść w tej chwili, jest skorzystanie
IE=8
.źródło
IE=10
w swoich witrynach. Jeśli Twoja witryna została przetestowana w IE10 (wersja zapoznawcza), możesz z niej bezpiecznie korzystać; w przeciwnym razie możesz trzymać się tegoIE=9
na razie.Tools->Compatibility View Settings
i zaznaczając opcję Wyświetl wszystkie strony internetowe w widoku zgodności. Aby rozwiązać problem, muszę zwrócić nagłówek w odpowiedzi HTTP:X-UA-Compatible: IE=edge
Po wielu godzinach rozwiązywania problemów z tymi rzeczami ... Oto kilka najważniejszych informacji, które pomogły nam w
X-UA-Compatible
dokumentacji: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16Za pomocą
<meta http-equiv="X-UA-Compatible" content=" _______ " />
W standardowym środkiem użytkownika tryby (nie-naśladować nich) ignorować
<!DOCTYPE>
dyrektyw w swoją stronę i uczynić na podstawie standardów obsługiwanych przez tę wersję IE (npIE=8
będzie lepiej Obey rozstaw stół granicznej i niektóre pseudo niż selektorówIE=7
).Podczas gdy tryby emulacji mówią IE, aby postępował zgodnie z dowolnymi
<!DOCTYPE>
dyrektywami na stronie, tryb renderowania standardów oparty jest na wybranej przez ciebie wersji, a tryb dziwactwa oparty naIE=5
Możliwe wartości tego
content
atrybutu to:content="IE=5"
content="IE=7"
content="IE=EmulateIE7"
content="IE=8"
content="IE=EmulateIE8"
content="IE=9"
content="IE=EmulateIE9"
content="IE=edge"
źródło
Jeśli pracujesz ze stroną w strefie intranetowej, może się okazać, że IE9 bez względu na to, co robisz, przechodzi w tryb kompilacji IE7.
Wynika to z ustawienia w ustawieniach zgodności IE, które mówi, że wszystkie strony intranetowe powinny działać w trybie zgodności. Możesz to odznaczyć za pomocą zasad grupy (lub po prostu odznaczając to w IE), lub możesz ustawić następujące ustawienia:
Działa to (jak wyszczególniono w innych odpowiedziach), ale początkowo może się tak nie wydawać: musi pojawić się przed zadeklarowaniem arkuszy stylów . Jeśli tego nie zrobisz, zostanie to zignorowane.
źródło
Wierzę, że to załatwi sprawę:
źródło
Jak zasugerowano w tej odpowiedzi na powiązane pytanie, tryb „krawędzi” można ustawić w pliku Web.Config. Spowoduje to, że będzie on mieć zastosowanie do całego kodu HTML zwróconego z aplikacji bez konieczności wstawiania go do poszczególnych stron:
Ten sam krok można również wykonać, modyfikując „Nagłówki odpowiedzi HTTP” za pomocą Menedżera usług IIS dla serwera IIS, całej witryny lub określonych aplikacji.
źródło
Rozwiązanie dla metatagu nie działało dla nas, ale ustawienie go w nagłówku odpowiedzi spowodowało:
źródło
chrome=1
właściwości, stackoverflow.com/a/22059516/368691 . Pamiętaj, że Chrome Frame został wycofany. blog.chromium.org/2013/06/retiring-chrome-frame.htmlJeszcze kilka notatek na ten temat w oparciu o moje ostatnie doświadczenia. Uczelnia, w której pracuję, wydaje problemy z laptopami z IE 8 ustawionym w tryb zgodności dla wszystkich witryn intranetowych. Próbowałem dodać metatag, aby wyłączyć ten tryb dla stron obsługiwanych przez moją witrynę, ale IE konsekwentnie zignorował ten tag. Jak wspomniał Lance w swoim poście, dodanie nagłówka odpowiedzi naprawiło ten problem. Oto jak ustawiłem nagłówek na podstawie metody HTML5:
Aby ten nagłówek został faktycznie wysłany, musisz upewnić się, że masz włączone mod_headers w Apache. Jeśli chcesz się upewnić, że masz włączony ten mod, umieść to na stronie, na której można uruchomić php:
źródło
IE8 domyślnie pracuje w trybie standardowym dla sieci intERnet i trybie dziwactw dla sieci intRAnet. Metatag HTML jest ignorowany, jeśli masz ustawiony doctype jako przejściowy xhtml. Rozwiązaniem jest dodanie nagłówka HTTP w kodzie. To działało dla nas. Teraz nasza strona intranetowa zmusza IE8 do renderowania aplikacji w trybie standardów.
Dodano do PageInit podstawowej klasy strony (ASP.net C #):
odnośnik: http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html
źródło
Wynika to z ustawienia w ustawieniach zgodności IE, które mówi, że wszystkie strony intranetowe powinny działać w trybie zgodności. Możesz to odznaczyć za pomocą zasad grupy (lub po prostu odznaczając to w IE), lub możesz ustawić następujące ustawienia:
Najwyraźniej nie można zmienić ustawień widoku zgodności jako zasad grupy, ale jest to coś, co może być zmienione w rejestrze, ten metatag działa dla mnie dobrze, musiałem sprawić, by wymagany atrybut działał jako część formularza HTML , działało w Chrome i Firefox, ale nie w IE.
Oto ładny obraz tego, jakie przeglądarki obsługują każdy pojedynczy element HTML 5.
http://html5readiness.com/
Zwróć uwagę na jeden wspólny mianownik Google Chrome, który obsługuje wszystko. Mam nadzieję, że to pomoże
źródło
Wstaw jako pierwszy element pod tagiem.
Zmusza to IE do renderowania strony w fizycznej wersji IE i ignoruje „Ustawienia trybu” przeglądarki. Można to ustawić w narzędziach programistycznych, spróbuj zmienić go na starszą wersję IE w celu przetestowania, należy to zignorować, a strona powinna wyglądać dokładnie tak samo.
źródło
Jeśli masz dostęp do serwera, najbardziej niezawodnym sposobem jest zrobienie tego na samym serwerze, w IIS. Przejdź do nagłówków odpowiedzi HTTP IIS. Dodaj nazwę: Zgodna z X-UA
Wartość: IE = edge Spowoduje to zastąpienie przeglądarki i kodu.
źródło
Jeśli chcesz, aby każda strona ładowała wybraną treść i używasz asp.net. Po prostu zastosuj go jako pierwszy tag pod tagiem nagłówka w Widoki> udostępnione> Layout.cshtml
tylko wskazówka
źródło