Ich muss nicht nur den Browsertyp, sondern auch die Version mit jQuery erkennen. Meistens muss ich herausfinden, ob es IE 8 ist oder nicht.
Ich bin mir nicht sicher, ob ich es richtig mache.
Wenn ich mache :
if (jQuery.browser.version >= 8.0) {
dosomething}
Ich bin nicht sicher, ob es für Version 8.123.45.6 funktioniert, oder?
Bearbeiten: Beachten Sie, dass JQuery 2+ die Unterstützung für IE8 und niedriger eingestellt hat und daher nicht mehr zur Erkennung von IE8 verwendet werden kann. Wenn Sie eine aktuelle Version von JQuery verwenden, muss eine Nicht-JQuery-Lösung verwendet werden.
javascript
jquery
Salmane
quelle
quelle
jquery.support.opacity
einfach getan, was ich wollte. Danke ...jQuery.browser
verlässt, keine zusätzliche Bibliothek wie Modernizr benötigt und keine Bearbeitung des HTML-Antworten:
Es ist in der jQuery API-Dokumentation dokumentiert . Suchen Sie nach Internet Explorer mit
$.browser.msie
und überprüfen Sie dann die Version mit$.browser.version
.UPDATE: $ .browser in jQuery 1.9 entfernt
quelle
if(jQuery.browser.version.substring(0, 2) == "8.") { ... }
. Auf diese Weise funktioniert es mit allen Versionen von IE8.jQuery.browser
wurde in 1.3 veraltet und kann in Zukunft auf ein Plugin verschoben werden. Siehe die jQuery.browser-DokumenteIch denke, der beste Weg wäre folgender:
Aus HTML5 Boilerplate:
in JS:
zumal seitdem
$.browser
aus jQuery 1.9+ entfernt wurde.quelle
lt-ie9
AOT istie8
<html>
anstatt gebunden ist<body>
?Dies sollte für alle IE8-Nebenversionen funktionieren
- aktualisieren
Bitte beachten Sie, dass $ .Browser wird von jQuery 1.9 entfernt
quelle
Vergessen Sie nicht, dass Sie auch HTML verwenden können, um IE8 zu erkennen.
Wenn Sie dies vor all Ihren Skripten haben, können Sie einfach die Variable "ie" oder was auch immer überprüfen.
quelle
document.documentMode ist undefiniert, wenn der Browser nicht IE8 ist.
Es gibt 8 für den Standardmodus und 7 für "Kompatibel mit IE7" zurück.
Wenn es als IE7 ausgeführt wird, gibt es viele CSS- und Dom-Funktionen, die nicht unterstützt werden.
quelle
if ((document.documentMode || 100) < 9) { // IE8
0
während die Seite geladen wird - "versuchen Sie, den Dokumentkompatibilitätsmodus zu einem späteren Zeitpunkt zu bestimmen" (dh nachdem das Dokument fertig ist).Vorausgesetzt ...
<body>
oder aus<html>
).... dann ist dies wahrscheinlich der beste Trick (basierend auf dieser nicht jQuery, etwas weniger flexiblen Variante ). Es werden dann Tests erstellt und anschließend ein entsprechender bedingter Kommentar entfernt.
(Bedingte Kommentare werden im IE10 + 'Standardmodus' ignoriert - aber das sollte in Ordnung sein, da IE10 + 'Standardmodus' keine verrückte Rendering-Engine hat!)
Lassen Sie diese Funktion fallen:
Dann benutze es so:
Ich würde auch vorschlagen, die Ergebnisse dieser Funktion zwischenzuspeichern, damit Sie sie nicht wiederholen müssen. Sie können die Zeichenfolge
(comparison||'')+' IE '+(version||'')
beispielsweise als Schlüssel verwenden, um das Ergebnis dieses Tests in einem Objekt irgendwo zu speichern und zu überprüfen.quelle
Hinweis:
1) $ .browser scheint in jQuery 1.9+ gelöscht zu sein (wie von Mandeep Jain angegeben). Es wird empfohlen , stattdessen .support zu verwenden.
2) $ .browser.version kann im IE> 7 "7" zurückgeben, wenn sich der Browser im "Kompatibilitäts" -Modus befindet.
3) Ab IE 10 funktionieren bedingte Kommentare nicht mehr.
4) jQuery 2.0+ wird die Unterstützung für IE 6/7/8 einstellen
5) document.documentMode scheint nur in Internet Explorer 8+ Browsern definiert zu sein. Der zurückgegebene Wert gibt an, in welchem Kompatibilitätsmodus Internet Explorer ausgeführt wird. Trotzdem keine gute Lösung.
Ich habe zahlreiche .support () -Optionen ausprobiert, aber es scheint, dass sich ein IE-Browser (9+) im Kompatibilitätsmodus einfach wie IE 7 verhält ... :(
Bisher habe ich nur festgestellt, dass dies funktioniert (Art-a):
(Wenn documentMode nicht definiert ist und htmlSerialize und Opacity nicht unterstützt werden, sehen Sie sich sehr wahrscheinlich IE <8 an ...)
quelle
Wenn Sie mit Browserversionen herumspielen, führt dies sehr oft zu nichts Gutem. Sie möchten es nicht selbst implementieren. Aber Sie können Modernizr von Paul Irish und anderen klugen Leuten gemacht. Es erkennt , was der Browser tatsächlich kann , und fügt dem
<html>
Element entsprechende Klassen hinzu . Mit Modernizr können Sie jedoch die IE-Version wie folgt testen:Ähnlich können Sie verwenden
.lt-ie8
, und.lt-ie7
.quelle
Sie sollten sich auch jQuery.support ansehen . Die Funktionserkennung ist für die Codierung Ihrer Funktionen viel zuverlässiger als die Browsererkennung (es sei denn, Sie versuchen nur, Browserversionen zu protokollieren).
quelle
Mit dieser Abfrage können Sie leicht erkennen, welcher Typ und welche Version des Browsers
quelle
Hier ist das Jquery-Browser-Erkennungs-Plugin zur Identifizierung der Browser- / Betriebssystemerkennung.
Sie können dies für Stylingzwecke verwenden, nachdem Sie das Plugin hinzugefügt haben.
quelle
Sie können $ .browser verwenden, um den Browsernamen zu ermitteln. Mögliche Werte sind:
oder erhalten Sie ein boolesches Flag: $ .browser.msie ist wahr, wenn der Browser MSIE ist.
Was die Versionsnummer betrifft, können Sie parseInt ($. browser.version, 10) verwenden, wenn Sie nur an der Hauptversionsnummer interessiert sind. Sie müssen die Zeichenfolge $ .browser.version nicht selbst analysieren.
Auf jeden Fall ist die Eigenschaft $ .support verfügbar, um die Unterstützung für bestimmte Funktionen zu erkennen, anstatt sich auf $ .browser zu verlassen.
quelle