Ich arbeite in einem großen Projekt, und wir müssen feststellen, ob der Benutzer die Kompatibilitätsansicht in IE verwendet.
Ich verwende diesen Code, um das zu tun.IE9 Kompatibilitätsmodus für Intranetsites hat die falsche User-Agent-Zeichenfolge
var agentStr = navigator.userAgent;
var mode = null;
if (agentStr.indexOf("Trident/5.0") > -1) {
if (agentStr.indexOf("MSIE 7.0") > -1)
mode = "IE9CV";
else
mode = "IE9";
} else if (agentStr.indexOf("Trident/4.0") > -1) {
if (agentStr.indexOf("MSIE 7.0") > -1)
mode = "IE8CV";
else
mode = "IE8";
} else
mode = "IE7";
Es ist großartig funktioniert, ist das Problem, dass:
1 - in einer Intranet-Umgebung wird die Option "Display Intranet-Sites in der Kompatibilitätsansicht" in dem Browser des Clients überprüft, und es gibt nichts, was ich tun kann, darüber
2 - Es wäre kein Problem für das Skript sein, die Kompatibilitätsansicht zu erkennen, aber ich weiß nicht, warum, der User-Agent, die ich erhalte diese unten, wenn die Seite geladen wird auf IE 9 ist Kompatibilitätsansicht
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Die sehr gleichen, wie es sein würde, wenn die Seite mit geladen IE9
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Während ich
empfangen werden souldMozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
Für IE9 Kompatibilitätsansicht.
Ich bekomme dieses letzte Ergebnis, wenn ich die IE9-Kompatibilitätsansicht FORCE (wie erwartet), aber wenn es von selbst lädt, bekomme ich nur den gleichen User-Agent wie IE9-Standard würde mir senden. Ich kann also nicht herausfinden, ob der Benutzer die IE9-Standardansicht oder die Kompatibilitätsansicht hat.
Ich weiß nicht, ob ich mich klar gemacht habe, aber es sieht aus wie ein großer IE Bug.
Wie soll ich fortfahren? Hat jemand dieses Problem auch erlebt? Dies simuliert der Bildschirm
die Situationen:
Sehr seltsam ... Sind Sie sicher, dass es tatsächlich in Kompatibilitätsmodus zeigt mit den "Display Intranet-Site" überprüft? Da Sie Recht haben, sollte es angezeigt werden MSIE 7.0; Trident/5.0; 'für IE9 Comp-Modus.Fragen Sie einfach, denn wenn der UAgent das anzeigt, ist es vielleicht gar nicht im Comp-Modus. –
mcpDESIGNS check meine letzte Bearbeitung ... Ich habe ein Bild hinzugefügt, das die Situationen simuliert, und die Antworten, die ich bekomme =/ – rafaces
@Christoph Dies ist kein Duplikat, aber ein anderes Problem an sich. Ich habe in letzter Zeit viel mit der Kompatibilität zu tun gehabt und wusste nicht einmal über dieses Problem. Haben Sie versucht, sich mit Microsoft in Verbindung zu setzen, um zu sehen, ob sie einen Rat in diesem seltsamen Intranet Checkbox-Problem haben? Ich fühle mich wie, wenn die UAString ist richtig, ich weiß nicht, wie sonst Sie wissen könnten, wenn es wirklich in Kompatibilitätsmodus –