2010-12-16 17 views
13

IE7'yi jQuery işlevinde bir if deyimi ile hedeflemeye çalışıyorum. Bu belirli bit kodum şu şekildedir:jQuery ile Hedef IE7

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

Bu doğru mu?

+4

Bunu test ettiniz mi? – Domenic

+0

Belki de bir şeyler yapmanın "doğru" yolunu mu arıyorsunuz? Değilse, sadece kodunuzu test edin ve işe yarayıp yaramadığını görün. – gideon

+0

Sanırım parseInt ($. Browser.version) == 7' daha güzel olurdu. – karim79

cevap

37

Dene:

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

Ve @ Andrew Whitaker yorum olarak

, yerine belirli bir tarayıcı hedefleme yerine özelliklerini tespit düşünün.

+0

Bu ifadeyle kabul edildi. Jquery apis bile şunları söylüyor: "Bu özelliği kullanmamanızı öneririz, lütfen bunun yerine özellik tespiti kullanmayı deneyin." (http://api.jquery.com/jQuery.browser/) – Tjirp

+4

@Tjirp, '' Özellik '' ibaresini algılamanın bir yolu olduğunu sanmıyorum. ”IE7, taşma penceresindeki kaydırma çubuklarını taşırken, IE8 bunları dışarıya çekiyor ". – CaffGeek

+0

Güzel senaryo, destek. Ancak, IE7 ve IE8'i hedeflemek istesem ne olur? '($. Browser.msie && parseInt ($. Browser.version, 10) == 7,8) 'ile test ettim ve çalışıyor. Ancak, JSLint'im bana bir hata olduğunu söylüyor. Ben bir JavaScript gurusu değilim, bu yüzden hatanın ne anlama geldiğini anlamıyorum. Benim düşüncem DYR için, aynı işlevi iki farklı tarayıcıda tekrar etmek zorunda değilim. Bunu nasıl başaracağınız hakkında bir fikrin var mı? Teşekkürler. –