Ich versuche herauszufinden, ob es möglich ist zu erkennen, welche Version von IE Sie verwenden, und nicht Ihren Dokument-Modus. Es kann Server oder Client-Code sein (spielt keine Rolle), ich muss nur wissen, welche Version von IE der Benutzer installiert hat.Erkennen der IE-Version, die den Kompatibilitätsmodus nicht berücksichtigt
Antwort
Es konnte in beiden durch die Überprüfung der User-Agent-Zeichenfolge erkannt werden. Beachten Sie, dass Browser ihre UA-Zeichenfolge spoofen können, aber dies ist jetzt seltener als in der Vergangenheit. Für ältere UA-Strings siehe this article on MSDN.
Beachten Sie auch, dass IE8 eine andere UA-Zeichenfolge im Kompatibilitätsmodus und im Standardsmodus sendet (siehe this und this - beide sind IE8, obwohl der ehemalige sagt MSIE 7.0
).
Eine lange Liste von UA-Strings finden Sie unter this - beachten Sie, dass Sie nach einem Muster suchen sollten, das nicht exakt übereinstimmt, da die installierte Software die UA-Zeichenfolge ändert.
IE9 hat einige neue UA String Sache - see the IEBlog for details.
Zusammengefasst (und von @EricLaw ‚s Kommentar leihen):
- kein Trident in UA string - überprüfen Sie die
MSIE [0-9].0
Zeichenfolge für Version - Trident/4.0 - IE 8, Version in
MSIE
ist nicht relevant - Trident/5.0 - IE 9
ich kann immer noch nicht herausfinden wheater der Browser IE9 oder IE8 ist ... – Alxandr
@Alxandr: ich denke, IEBlog i s hier ganz klar: "Versionstoken wird von 'MSIE 8.0' auf 'MSIE 9.0' hochgezählt. Trident-Token wird von 'Trident/4.0' auf 'Trident/5.0' erhöht. "(Link zu IEBlog in Antwort eingefügt) Also: kein Trident - was auch immer Version" MSIE \ d.0 "ist. Trident 4.0 - MSIE8. Trident 5.0 - MSIE 9. – Piskvor
Suchen Sie nach dem Trident-Token. "Trident/5.0" == IE9. "Trident/4.0" == IE8. – EricLaw