2013-07-13 17 views
6

Moje wsparcie projektu od IE8 do IE10. Staramy się używać standardowego kodu i obsługiwać tryb standardowy dla wszystkich wersji IE.Jak wymusić tryb zgodności dla wszystkich wersji IE?

Używamy następujące zmusić IE otworzyć w najnowszym trybie:

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

Ale dla niektórych przypadkach musimy zmusić IE, aby otworzyć stronę w trybie zgodności. Podobnie jak wtedy, gdy użytkownik otwiera witrynę w IE10, powinien otworzyć się w trybie zgodności IE10. Gdy użytkownik otworzy witrynę w IE9, powinien otworzyć się na kompatybilność IE9 i tak dalej dla IE8.

Czy można wymusić tryb zgodności lub możemy wymusić tryb dokumentu, a nie tryb zgodności przeglądarki?

jeśli jego możliwości, jest to możliwe, aby mieć ogólne określenie dla wszystkich wersji IE i składni konkretnego nie IE wersja jak podano w wątku związanego gdy FORES IE8 do IE7 Emulacja: Force IE8 Into IE7 Compatiblity Mode

+4

NIGDY nie powinieneś potrzebować trybu zgodności. Tryb zgodności ma na celu sprawienie, aby przeglądarka działała z witrynami OLDER, które nie zostały jeszcze zaktualizowane. –

+0

Czy tryb zgodności IEx działa skutecznie w trybie emulacji IE7 z subtelnymi różnicami w łańcuchu znaków użytkownika dla celów statystycznych? –

+1

@Kolink Tak, zawsze staramy się tworzyć witryny, które otwierają się w trybie Standard. Ale jest jeden projekt, który nie został jeszcze zaktualizowany do pracy z IE10. Aktualizacja tego projektu zajmie trochę czasu. Do tego czasu chcieliśmy zmusić użytkownika do otwarcia strony w zgodności z IE9. Dlatego spytałem. –

Odpowiedz

8

Tryb zgodności ma na celu pomóc użytkownicy ze starymi produktami, które nie są aktualne. W żaden sposób nie powinno pomóc deweloperowi w uniknięciu problemów, które może znaleźć.

Jeśli nie masz absolutnie żadnego wyboru (na przykład zerwana zależność, taka jak SharePoint ...) lub chcesz narazić się na poważny brak kompetencji, nie powinieneś zmuszać użytkownika do oglądania Twojej strony w trybie zgodności.

Jeśli potrzebujesz obsługi wszystkich wersji IE, musisz zrozumieć, w jaki sposób działa każda z wersji i mieć świadomość różnic, aby utworzyć kod, który może skutkować tym samym wyjściem bez względu na wersję.

Jeśli pomysł opanowanie „brzydko wersje” (na przykład IE6 i starszych) brzmi naprawdę źle wam, chciałbym poinformować, aby ustanowić próg koncentracji w sprawie zgodności z niektórych starych wersjach, zamiast wszystkich z nich.


EDYCJA: Ale jeśli naprawdę potrzebujesz wymusić tryb zgodności, możesz użyć metatagu "X-UA-Compatible". Na przykład:

<meta http-equiv="X-UA-Compatible" content="IE=9" /> 
+0

Dzięki, ale w przypadku niektórych projektów jest to wymagane, dopóki nie naprawimy go dla IE10. To dlatego zapytałem, czy istnieje jakaś składnia, która naprawdę może "wymusić", aby IE10 nie otwierał się w trybie standardowym. –

+1

Możesz wypróbować '' ale myślę, że byłoby lepiej mieć komunikat nakładki na IE10, który poleciłby użytkownikowi nacisnąć F12 i przejdź w trybie zgodności, dopóki nie zostanie naprawiony dla IE10. –

+2

@Pawan Kilka tygodni temu, okazało commit z całego tekstu wzdłuż linii „Fix ___ ___ w IE8 i zmuszając kompatybilność IE7 dopóki możemy naprawić to we właściwy sposób”, od kiedy IE8 został zwolniony. Ten metatag wciąż tam jest i jest wymagany, aby IE 8-11 nie łamał się na starych stronach, co ogranicza to, co możemy teraz zrobić - tak wiele rzeczy zostało wykrojonych, że usunięcie trybu zgodności to za dużo pracy. Więc proszę, postępuj zgodnie z tą radą: Napraw ją we właściwy sposób _now_. – Izkata