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
- 1. Fancybox berücksichtigt nicht die Breite der Bildlaufleiste
- 2. Warum berücksichtigt GetComputedStyle nicht den Margin Collapsing?
- 3. TortoiseSVN Kompatibilitätsmodus
- 4. Detect IE10 Kompatibilitätsmodus
- 5. Berücksichtigt to_utc_timestamp die Sommerzeit?
- 6. Java: Berücksichtigt LinkedBlockingQueue die Reihenfolge der Verbraucher?
- 7. SoftLayer-Konto berücksichtigt die Objektmaske nicht
- 8. GetTextExtentPoint32 berücksichtigt nicht die aktuelle Schriftart
- 9. Encoding.UTF8.GetString berücksichtigt nicht die Präambel/BOM
- 10. Ermitteln der iPhone-App auf dem iPad im Kompatibilitätsmodus
- 11. BIRT Spaltenbreite wird nicht berücksichtigt
- 12. Windows 10 Kompatibilitätsmodus | Registrierungsschlüssel
- 13. Berücksichtigt SqlDataReader den NonClustered-Index für die Datenbank?
- 14. IE8 zum Kompatibilitätsmodus gezwungen
- 15. Stil in HTML nicht berücksichtigt
- 16. Hat ein Compiler bei der Speichererstellung den Kernel-Speicherplatz berücksichtigt?
- 17. Warum berücksichtigt chart.js den Inhalt des Containerelements nicht?
- 18. Wie wird eine Variable umbenannt, die den Namensumfang berücksichtigt?
- 19. Destination Ziel nicht Trichter berücksichtigt
- 20. Run FMLECmd.exe ohne Kompatibilitätsmodus
- 21. Bei der Berechnung der geodätischen Distanz wird die Höhe berücksichtigt
- 22. JPA: Inheritance - Diskriminatorwert nicht berücksichtigt in den generierten SQL genommen
- 23. mySQL-Abfrage, UND nicht berücksichtigt
- 24. difflib.SequenceMatcher isjunk Argument nicht berücksichtigt?
- 25. IE8 - Kompatibilitätsmodus Spreads Seite
- 26. Stuck mit IE-Kompatibilitätsmodus
- 27. Webbrowser läuft im Kompatibilitätsmodus
- 28. css3 funktioniert nicht im Kompatibilitätsmodus, keine Alternative?
- 29. SSRS berücksichtigt nicht die CanGrow-Eigenschaft beim Exportieren nach Excel
- 30. .NET Convert.ChangeType von Zeichenfolge zu DateTime berücksichtigt nicht die Zeitzone?
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