wake-up-neo.com

Wie kann ich feststellen, ob IE8 in der Kompatibilitätsansicht ausgeführt wird?

Kann ich trotzdem feststellen, ob in einem IE8-Browser die Kompatibilitätsansicht aktiviert ist?

Ich kann scheinbar nichts bei Google finden und frage mich daher, ob dies Informationen sind, die verfügbar sind ...

Warum fragst du!? Ich versuche, einen Fehler in unserer Anwendung aufzuspüren. Ich gehe die Elmah-Protokolle durch und es scheint einen Trend zu geben. Dieser Fehler wird in der Regel von IE8 ausgelöst. Ich habe versucht, den Fehler in meiner Kopie von IE8 zu beheben, konnte dies jedoch nicht. Ich möchte die Schuldigen eingrenzen und dachte, dies könnte ein Weg sein, dies zu tun.

27
Gavin Miller

Verwenden Sie in JavaScript document.documentMode

Weitere Informationen finden Sie unter http://msdn.Microsoft.com/en-us/library/cc196988%28VS.85%29.aspx .

18
Alohci

Offensichtlich hat IE8 einige neue Eigenschaften

document.documentMode

und

document.compatMode

http://msdn.Microsoft.com/en-us/library/cc196988(VS.85).aspx

7
Tommy

Ich benutze:

try{ JSON } catch (e){ alert("Compatibility Mode Detected")  }

Das Objekt JSON wurde in IE 8 definiert, sodass in IE 7 oder wenn in Compatibility Mode ein Fehler ausgelöst und abgefangen wird.

Ich mag, dass dies jedes Mal funktioniert und es eine Zeile ist.

3
Brian McGinity

Suchen Sie im UserAgent nach "Trident/4.0". Es sollte nur für IE-8 vorhanden sein. http://social.msdn.Microsoft.com/Forums/en-US/iewebdevelopment/thread/33e0ed49-11fb-4d91-857c-a35496e90075

3
Michael Baranov

Verwenden Sie die Feature-Erkennung, um die Antwort von @ Tommy zu erweitern (die Benachrichtigung ist natürlich optional, ich verwende irgendwo eine nette Div- oder Inline-Nachricht):

if(typeof document.documentMode !== 'undefined') { // checks if this is IE 8 or >
         if(document.documentMode < 8) {  // check if in compat mode 
             // add code here to inform user that they need to turn off compatiblity view
             alert("Click ALT-T then compat view etc...");  
         }
} 
2
sijpkes

Ich glaube, es ist in der User Agent-Zeichenfolge enthalten:

"Ein neues Tag in der Benutzeragentenzeichenfolge ermöglicht die Erkennung von Clients, die Ihre Site in der Kompatibilitätsansicht anzeigen. Dieses Tag ist auch in der" normalen "Internet Explorer 8-Benutzeragentenzeichenfolge enthalten."

"Für den Fall, dass ein Benutzer die Kompatibilitätsansicht für Ihre Site auswählt, können Sie diese mithilfe des Versionsziel-Tags/HTTP-Headers in den gewünschten Layoutmodus zurückversetzen. Ein neuer Inhaltswert," IE = EmulateIE8 ", rundet ab die Liste der unterstützten Werte und Hilfen in diesem speziellen Szenario. "

Weitere Informationen finden Sie hier: http://blogs.msdn.com/de/archive/2008/08/27/introducing-compatibility-view.aspx

0
ericvg

In MVC/ASP gibt Request.Browser.Version "7.0" zurück, unabhängig von der Version in der Kompatibilitätsansicht. Andernfalls wird die Browserversion zurückgegeben.

Sie können auch Request.Browser.Browser verwenden, um zu überprüfen, ob es sich um IE handelt

Request.Browser.Version
Request.Browser.Browser
0
Jim