2013-07-13 6 views
6

Mein Projekt unterstützt IE8 bis IE10. Wir versuchen, Standard-Code zu verwenden und den Standard-Modus für alle IE-Versionen zu unterstützen.Wie erzwinge ich den Kompatibilitätsmodus für alle IE-Versionen?

Wir verwenden die folgende IE zu zwingen, in dem aktuellen Modus zu öffnen:

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

Aber aus irgendeinem Fall brauchen wir IE zu zwingen Website zu öffnen, im Kompatibilitätsmodus. Wenn der Benutzer die Site in IE10 öffnet, sollte er im IE10-Kompatibilitätsmodus geöffnet werden. Wenn der Benutzer die Site in IE9 öffnet, sollte er in IE9 Compatibility usw. für IE8 öffnen.

Ist dies sogar möglich, um den Kompatibilitätsmodus zu erzwingen, oder können wir nur den Dokumentmodus und nicht den Kompatibilitätsmodus des Browsers erzwingen?

Wenn sein möglich, ist es möglich, eine allgemeine Aussage für alle IE-Versionen zu haben und nicht IE-Version spezifischer Syntax wie verknüpft in der Post gegeben, wenn es IE8 IE7 Emulation fores: Force IE8 Into IE7 Compatiblity Mode

+4

Sie sollten nie Kompatibilitätsmodus benötigen. Der Kompatibilitätsmodus soll den Browser mit älteren Seiten arbeiten lassen, die noch nicht aktualisiert wurden. –

+0

Ist der IEX-Kompatibilitätsmodus nicht effektiv IE7-Emulationsmodus mit nur geringen Unterschieden in der User-Agent-Zeichenfolge für den statistischen Zweck? –

+1

@Kolink Ja, wir versuchen immer, Seiten zu erstellen, die sich im Standardmodus öffnen. Aber es gibt ein Projekt, das noch nicht aktualisiert wurde, um mit IE10 zu arbeiten. Und es wird einige Zeit dauern, um dieses Projekt zu aktualisieren. Bis dahin wollten wir Benutzer dazu zwingen, die Seite in IE9-Kompatibilität zu öffnen. Darum habe ich gefragt. –

Antwort

8

Kompatibilitätsmodus gemeint ist, zu helfen, Benutzer mit alten Produkten, die nicht auf dem neuesten Stand sind. In keiner Weise sollte es dem Entwickler helfen, die Probleme zu vermeiden, die er finden könnte.

Sofern Sie absolut keine Wahl haben (zum Beispiel eine defekte Abhängigkeit wie SharePoint ...) oder einen ernsthaften Mangel an Kompetenz aufdecken wollen, sollten Sie keinen Benutzer zwingen, Ihre Seite im Kompatibilitätsmodus zu sehen.

Wenn Sie alle IE-Versionen unterstützen müssen, müssen Sie verstehen, wie jede Version funktioniert, und sich der Unterschiede bewusst sein, um einen Code zu erstellen, der unabhängig von der Version zur gleichen Ausgabe führen kann.

Wenn die Idee „crappy Versionen“ (zB IE6 und älter) meistern Sie wirklich schlecht klingt, würde ich Ihnen raten, eine Schwelle zu schaffen, über die Vereinbarkeit mit einigen alten Versionen zu konzentrieren, anstatt alle von ihnen.

EDIT: Aber wenn Sie wirklich Kompatibilitätsmodus erzwingen müssen, können Sie das "X-UA-Compatible" -Meta-Tag verwenden. Zum Beispiel:

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

Danke, aber für einige Projekte ist es eine Voraussetzung, bis wir es für IE10 beheben. Deshalb habe ich gefragt, gibt es irgendeine Syntax, die wirklich "forcieren" kann, so dass IE10 nicht im Standardmodus öffnet. –

+1

Sie können versuchen, 'aber ich denke, es wäre besser, eine Overlay-Nachricht auf IE10 zu haben, die Ihren Benutzer anweisen, F12 und drücken gehe in den Kompatibilitätsmodus, bis es für IE10 behoben ist. –

+2

@Pawan Vor ein paar Wochen haben wir einen Commit mit dem gesamten Text in den Zeilen "Fix ___ und ___ in IE8 gefunden, indem wir IE7-Kompatibilität erzwungen haben, bis wir den richtigen Weg finden können", seit der Veröffentlichung von IE8. Dieses Meta-Tag ist immer noch da, und es ist erforderlich, damit IE 8-11 nicht auf den alten Seiten bricht, was das beschränkt, was wir jetzt tun können - so viele Dinge wurden tapeziert, dass das Entfernen des Kompatibilitätsmodus zu viel Arbeit ist. Also bitte folge diesem Ratschlag: Fixiere den richtigen Weg _now_. – Izkata

Verwandte Themen