webentwicklung-frage-antwort-db.com.de

Erzwingen Sie den Browsermodus "Internet Explorer 8" im Intranet

Es gibt "Internet Explorer 8", "Internet Explorer 8-Kompatibilitätsmodus" und IE7-Modus im IE8.

Die Standardeinstellung in IE bewirkt jedoch, dass alle Intranet-Websites den "IE8-Kompatibilitätsmodus" verwenden, selbst wenn ich Doctype, den Metatag und den HTTP-Header festgelegt habe, um ihn in den IE8-Modus zu zwingen.

Ich habe

<! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE" " http://www.w3.org/TR/html4/loose.dtd ">

und

<meta http-equiv = "X-UA-kompatibel" content = "IE = 8">

Es geht jedoch immer noch in den "IE8-Kompatibilitätsmodus", ohne die Einstellung von IE zu ändern.

Wie erzwinge ich den Modus "IE8", ohne die Einstellungen eines Browsers zu ändern?

PS. Ich spreche hier nicht von "Dokumentenmodus".

69
Dennis C

Anscheinend hat MSFT keine große Intranet-Umgebung in Betracht gezogen, in der viele verschiedene Webanwendungen ausgeführt werden.

Es gibt keine Möglichkeit, die IE8-Einstellung zu umgehen, da ich irgendwo im MSDN-Forum gelesen habe.

Daher muss ich meine Systemadministratoren bitten, einige neue Gruppenrichtlinien festzulegen, um die Einstellungen für "Kompatibilitätsansicht" und den Wert zu ändern und zu verhindern, dass der Benutzer den Wert ändert, bis MSFT diesen Fehler entdeckt und behoben hat.

Aus einem MSDN-Blogbeitrag (Hervorhebung ihrer): "Browsermodus wird ausgewählt, bevor IE Webinhalt anfordert. Dies bedeutet, dass Websites keinen Browser auswählen können) Modus. " 

44
Dennis C

Es ist möglich, den Kompatibilitätsmodus im Intranet zu überschreiben. Fügen Sie einfach den folgenden Code zur web.config hinzu. Arbeitete mit IE9 für mich.

<system.webServer>
<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-UA-Compatible" value="IE=Edge" />
  </customHeaders>
</httpProtocol>

35
Andras Csehi

Sie müssen einige Anpassungen an IE vornehmen.

Hier sind sie.....

In Internetoptionen/Lokales Intranet/Sites 

Deaktivieren Sie unter: Lokales Intranet in Sites die Option "Intranet-Netzwerk automatisch erkennen".

Wählen Sie dann nur "Alle Netzwerkpfade (UNCs) einschließen".

Siehe beigefügte Screenshots

 Screenshot

11
Codex73

Ich fand die Antworten hier schwer zu folgen, daher hier die wichtigsten Informationen in aller Kürze:

Wenn Ihr Intranet die Standardeinstellungen für IE verwendet, wird der IE7-Standardmodus für Intranetsites unabhängig von den Websiteeinstellungen erzwungen.

Von this :

Kompatibilitätsansicht und das Unternehmen

Eine große Anzahl von Geschäftszweigen Websites sind Internet Explorer 7 heute fähig. Um zu erhalten Kompatibilität, Internet Explorer 8 wird mit intelligenten Standardeinstellungen geliefert, die auf .__ basieren. Zonenauswertung. Im Standardzustand ist alle Seiten im öffentlichen Internet Anzeige in Internet Explorer 8 Standardmodus (Kompatibilitätsansicht Aus) und alle Intranet-Websites Anzeige in Internet Explorer 7 Standardmodus (Kompatibilitätsansicht Ein).

Schauen wir uns einige Beispiele an. Wenn du Navigieren Sie zu den Sites auf Ihrem lokalen Intranet wie http: // myPortal und http: // sharepoint/sites/mySite , Internet Explorer 8 identifiziert sich mit einer Benutzeragentenzeichenfolge von "7", Versionsvektor von "7" und zeigt Webseiten an, die .__ auslösen. Standardmodus in Internet Explorer 7 Standardmodus. Diese Kombination erlaubt Webseiten, die einwandfrei funktionierten in Internet Explorer 7, um fortzufahren mit tun Sie dies in IE8.

6
upshake

Um die Einstellungen der Kompatibilitätsansicht für das Intranet oder alle Websites zu überschreiben, müssen Sie den IE8 selbst emulieren.

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
4
Craig A

Legen Sie einen benutzerdefinierten HTTP-Header fest, anstatt <meta... im Abschnitt <head> zu verwenden. Diese sollen gleichwertig sein, aber ich habe gesehen, dass ein X-UA-Compatible-HTTP-Header vom Server die Einstellung "Intranet-Sites in Kompatibilitätsansicht anzeigen" von IE 8 überschreibt, wobei das <meta...-Element nicht verwendet werden würde.

3
David Kolar

Wenn Sie .NET verwenden, habe ich die Antwort für Sie:

HTML:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=8" >

Web.Config:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=8" />
      </customHeaders>
    </httpProtocol>

Lesen Sie irgendwo, dass die DOCTYPE-Deklaration die allererste Zeile sein muss. Keine Kommentare oder leere Zeilen.

In Verbindung mit dem Setzen der HTTP-Antwortheader funktionierte dies für mich. Browser Mode wurde von "IE9-Kompatibilitätsmodus" zu "IE9-Modus".

1
BrunoSalvino

Die als "richtig" gekennzeichnete Antwort ist technisch korrekt, deutet jedoch darauf hin, dass es für das eigentliche Problem, mit dem die meisten Menschen konfrontiert sind, keine Lösung gibt: "Wie zeige ich auf dem IE8 bei aktiviertem Kompatibilitätsmodus eine Webanwendung, die keine Unterstützung bietet?" Kompatibilitätsmodus?". 

<!DOCTYPE HTML>
<HEAD>
    <meta http-equiv="X-UA-Compatible" content="Edge" >
</HEAD>

das funktionierte für mich an mehreren arbeitsplätzen. 

Wenn der obige Code auf der Anwendungsseite implementiert ist, scheint sich der IE8 so zu verhalten, als befände er sich nicht im Kompatibilitätsmodus, obwohl er immer noch den Browsermodus als Kompatibilitätsmodus anzeigt.

0
Tia

Sie müssen die Portnummer von Ihrem Domain-Site-Namen entfernensite: 1180 / index /

Wenn der Browser die Portnummer in der URL sehen - hi "think", ist dies das Intranet.

richten Sie Ihren DNS-Server für freundliche URLs ein - site.com/index und es funktioniert OK

0
ZOXEXIVO

Damit die META-Deklaration funktioniert, muss der Doctype die vereinfachte Version sein: 

<!DOCTYPE html>

Nicht die längere Aussage in Dennis 'Frage. 

0
Deborah

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation IntranetCompatibilityMode 1 -> 0

0
Yurok

Diese Combo hat den Trick für mich gemacht:

<!DOCTYPE HTML>
<HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
</HEAD>

mindestens IE Entwicklerwerkzeuge melden IE9-Standards von Compat View, IE8

nur für Tritte habe ich EmulateIE7 ausprobiert, und das hat auch funktioniert.

0
Ray Brockman