59

Gibt es eine Möglichkeit, IE8 in den IE7-Kompatibilitätsmodus mit .NET oder Javascript zu erzwingen?IE8 in IE7-Kompatibilitätsmodus erzwingen

+1

Kann ich dies auch mithilfe von IIS-Einstellungen erreichen? – Bryan

+10

Ich denke, ich könnte den Wert in diesem für alte Seiten sehen, aber bitte erstellen Sie keine neuen Seiten, die von IE7 abhängen ... lassen Sie das Biest sterben. –

+0

IE8 hat Fehler, die IE7 nicht hat und die weggehen, wenn sie in den Kompatibilitätsmodus wechseln: http://StackOverflow.com/Questions/1070178/Why-Does-Eie-8-Add-Bottom-Border-On-My-Image- anchor-tag Meine Website ist von diesem Fehler betroffen, und ich würde lieber IE8 sagen, um es korrekt wie IE7 und jeder andere Browser zu zeigen, indem ich eine Zeile zu meiner .htaccess-Datei hinzufügen, als eine browserspezifische Problemumgehung hinzuzufügen tatsächliche Seiten. –

Antwort

85

Wenn Sie dies Ihre Meta-Tags hinzufügen:

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

IE8 wird die Seite wie IE7 machen.

+22

Sie haben Recht - aber versuchen Sie es sofort nach dem Öffnen Tag hinzuzufügen. Ich hatte Probleme, als es weiter unten auf der Seite war. –

+1

Was passiert, wenn ich diese Zeile nicht zu jeder Aspx-Seite meiner Site hinzufüge? Kann ich das mit IIS machen? – Bryan

+5

@Bryan: Nein. Deshalb verwenden wir Masterseiten. – NotMe

5

seine noch einfacher .htaccess. HTML verwenden, können Sie ihn nur Metatag auf Ihrer Seite (erste, was auf der Seite) hinzufügen:

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

Wenn Sie es using.net tun wollte, man muss nur mit dieser Meta-Informationen, um Ihre HTTP-Anfrage senden in der Header. Dies würde jedoch eine Aktualisierung der Seite erfordern.

Sie können aber auch auf eine ähnliche Frage hier: Compatibility Mode in IE8 using VBScript

11

Es gibt an HTTP header Sie festlegen können, dass IE8 zwingen wird IE7-Kompatibilitätsmodus zu verwenden.

+1

Ich konnte das Meta-Tag nicht zum Funktionieren bringen, aber das Hinzufügen dieses Headers hat den Job erledigt. Vielen Dank! – swatkins

1

Eine Anmerkung dazu:

IE 8.0s Emulation verspricht nur die gleiche Seite angezeigt werden soll. Es gibt geringfügige Unterschiede, die zum Bruch der Funktionalität führen können. Ich hatte gerade ein Problem damit. Wo IE 7.0 eine JavaScript Wrapper-Funktion namens "anonymous()" in IE 8.0 verwendet, wurde der Wrapper anders benannt.

Also erwarten Sie nicht, dass Dinge wie JavaScript "einfach funktionieren", weil Sie die Emulation einschalten.

+5

Das Schreiben von Code, der vom "Namen" einer anonymen Funktion abhängt, ist unabhängig von der Browserversion keine zuverlässige Abhängigkeit. – EricLaw

5

eine weitere, wenn Sie IE 8 Seite machen in IE 8 Standardmodus

<meta http-equiv="X-UA-Compatible" content="IE=100" /> <!-- IE8 mode --> 
30

Sie können es in der web.config

<httpProtocol> 
     <customHeaders> 
      <add name="X-UA-Compatible" value="IE=7"/> 
     </customHeaders> 
    </httpProtocol> 

Ich habe bessere Ergebnisse mit diesem über wechseln möchten die obigen Lösungen. Nicht sicher, warum dies nicht als Lösung gegeben wurde. :)

+0

+1 Gute Lösung, wenn Sie IIS7 verwenden - http://www.iis.net/ConfigReference/system.webServer/httpProtocol –

+0

Hervorragende Lösung, wenn Sie den Inhalt der Seite nicht ändern oder die Seitenüberschriften direkt ändern können . –

+0

Ich denke, dass HTTP-Header alle Meta-Tags überschreiben, daher sollten sie die bevorzugte Lösung sein, wenn Sie die Option haben. – Matthew

1

Dies kann in IIS erfolgen: http://weblogs.asp.net/joelvarty/archive/2009/03/23/force-ie7-compatibility-mode-in-ie8-with-iis-settings.aspx

die Kommentare Lesen Sie auch: Mittwoch, 1. April 2009 08.57 Uhr von John Moore

A schnellen Follow-up. Das funktionierte großartig für meine Site, solange ich den IE = EmulateIE7-Wert verwende. Der Versuch, den IE = 7 zu verwenden, führte dazu, dass meine Website im Wesentlichen hängen blieb, wenn sie auf IE8 ausgeführt wurde.

0

mein Code hat diesen Tag

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

gibt es einen Weg, wo ich diesen Tag überspringe und noch Layouts werden gut und schön angezeigt mit diesem Tag wird die Anzeige bis IE 7 arbeiten, aber ich möchte es in weiteren Versionen ausführen ...