IE8 zuverlässig mit Javascript erkennen

8

Ich habe eine Web-App geschrieben, die IE Version 8 (oder höher vermutlich) benötigt. Wenn ich IE8 auf einer sauberen Windows-Installation auf einer VM ausführe, meldet es 'MSIE 8.0' als einen Benutzer-Agenten, wenn er in javascript mit navigator.userAgent abgefragt wird. Aber auf einem Windows 7-Rechner seines Kollegen meldet sein IE Version 8 im Hilfe | Über-Fenster, aber die User-Agent-Zeichenkette ist 'MSIE 7.0'.

Ich denke, irgendwo auf seiner Maschine gibt es eine Einstellung, die dem IE sagt, dass er die vorherige Version vortäuschen soll, irgendeine Art von Kompatibilität, die ich vermute, aber für das Leben von mir kann ich es nicht finden. Ich richte nicht den Modus quirksmode oder IE7 von meinem Ende ein.

    
sirlark 31.08.2010, 13:03
quelle

8 Antworten

12
%Vor%     
Quentin 31.08.2010, 13:08
quelle
7

Der Benutzeragent ist keine sinnvolle oder zuverlässige Methode, um die Browserversion zu bestimmen. Warum suchen Sie nicht nach dem Feature, das Sie benötigen, indem Sie es nur IE8 machen und das verwenden? Das ist eine viel zuverlässigere Methode.

    
Woody 31.08.2010 13:06
quelle
4

Der unterhaltsamste Trick, den ich gesehen habe - ohne eine Vorstellung davon zu haben, wie effizient er ist - ist die Nutzung der Funktion für bedingte Kommentare im IE dynamisch . Um dies zu tun, nimmt Ihr Code ein verborgenes <div> oder ein <div> in einem Dokumentfragment oder was auch immer, und fügt etwas HTML ein, umgeben von einem bedingten Kommentar, der codiert ist, um nach einer bestimmten Browserversion zu suchen:

%Vor%

IE8 kann neben dem URL-Feld eine kleine Schaltfläche anzeigen, die den Browser zwischen IE7-Modus und IE8-Modus schaltet. Sie können die "Developer Tools" öffnen und Sie erfahren, was die aktuelle Einstellung ist.

    
Pointy 31.08.2010 13:25
quelle
2

Könnten Sie bedingte Kommentare verwenden?

%Vor%     
Piskvor 31.08.2010 13:08
quelle
0

Ссылка

Es sollte solche Probleme erkennen. Alternativ bin ich mir nicht sicher, aber IE 8 könnte sein User-Agent-Tag im 'Kompatibilitätsmodus' wechseln.

    
Rushyo 31.08.2010 13:07
quelle
0

Der einzige Weg, wie ich herausfinden kann, wie ich meine Version von IE8 dazu bringen kann, zu sagen, dass es IE7 ist, ist die Kompatibilitätsansicht zu aktivieren. Siehe Ссылка

    
geowa4 31.08.2010 13:54
quelle
0

Es stellte sich heraus, dass sein Browser so eingestellt war, dass alle Intranet-Sites im Kompatibilitätsmodus angezeigt wurden. Ja, der Kompatibilitätsmodus ändert auch die Zeichenfolge des Benutzeragenten.

    
sirlark 31.08.2010 14:05
quelle
0

Finden Sie diese süße Funktion auf GIT (in den Kommentaren) :

%Vor%     
Justin 28.03.2014 20:15
quelle