2010-12-16 9 views
13

Ich versuche, IE7 mit einer if-Anweisung in einer jQuery-Funktion zu zielen. Mein Code zu diesem spezifischen Bit ist:Target IE7 mit jQuery

if($.browser.msie && $.browser.version.substring(0) == "7") { 
    //Do something 
} 

Ist das korrekt?

+4

Haben Sie es getestet? – Domenic

+0

Suchst du vielleicht nach dem "richtigen" Weg, etwas zu tun? Wenn nicht, testen Sie einfach den Code und sehen Sie, ob er funktioniert. – gideon

+0

Ich denke 'parseInt ($. Browser.version) == 7' wäre hübscher. – karim79

Antwort

37

Versuchen:

if($.browser.msie && parseInt($.browser.version, 10) == 7) { 
    //Do something 
} 

Und @ Andrew Whitaker Kommentare, anstatt einen bestimmten Browser-Targeting, betrachten Funktionen statt zu erfassen.

+0

Mit dieser Aussage einverstanden. Sogar die jquery apis sagt Folgendes: "Wir empfehlen, diese Eigenschaft nicht zu verwenden, sondern stattdessen die Feature-Erkennung zu verwenden." (http://api.jquery.com/jQuery.browser/) – Tjirp

+4

@Tjirp, ich glaube nicht, es gibt eine Möglichkeit, die "Funktion" für "IE7 zieht Bildlaufleisten in Content-Fenster bei Überlauf, IE8 zieht sie nach draußen ". – CaffGeek

+0

Schönes Skript, upvote. Was aber, wenn ich auf IE7 und IE8 abzielen wollte? Ich habe mit 'if ($. Browser.msie && parseInt ($. Browser.version, 10) == 7,8)' getestet und es funktioniert. Wie auch immer, mein JSLint sagt mir, dass es einen Fehler gibt. Ich bin kein JavaScript-Guru, also verstehe ich nicht, was der Fehler bedeutet. Meine Idee ist DYR, also muss ich nicht die gleiche Funktion für zwei verschiedene Browser wiederholen. Irgendeine Idee, wie man das erreicht? Vielen Dank. –