2013-08-09 26 views
6

Tarayıcı IE9'dan düşükse jQuery'de belirli bir kodu çalıştırmak istiyorum. Ve evet, ben zaten < (Sen eski Internet Explorer sürümlerini hedefleyebilir yaklaşıkTarayıcıda bazı javascript'i yürütün (örneğin, URL'ye eşittir.

<!--[if ... IE ]> <![endif]--> 

biliyorum Ama ne istediğim The Script etiketi içinde bu durumu kontrol etmektir ve jQuery ile

<script> 
    $(document).ready(function(){ 
     //code to check if lt ie9 
    }); 
</script> 
+0

[Javascript'te IE sürümünü bul] olası bir kopyası (http://stackoverflow.com/questions/10964966/detect-ie-version-in-javascript) – JJJ

+0

Tarayıcı algılama yerine özellik tespiti kullanmayı düşündünüz mü? – Spudley

cevap

14

document.ready = <html> sınıf varsa 9) daha sonra

<!--[if lt IE 7]> <html class="ie ie6 lte9 lte8 lte7"> <![endif]--> 
<!--[if IE 7]>  <html class="ie ie7 lte9 lte8 lte7"> <![endif]--> 
<!--[if IE 8]>  <html class="ie ie8 lte9 lte8"> <![endif]--> 
<!--[if IE 9]>  <html class="ie ie9 lte9"> <![endif]--> 
<!--[if gt IE 9]> <html> <![endif]--> 
<!--[if !IE]><!--> <html>    <!--<![endif]--> 

... ve ... <html> elemana sınıflar aracılığıyla kontrol .lt9 ya .lt8 - her ne Internet Explorer'ın sürümü hedeflediğiniz: Ancak

if($('html').hasClass('lte9')) { /* LTE IE9 */ } 

, bunun yerine belirli bir tarayıcı için kontrol etmeyi Modernizr özelliği algılama kullanarak öneririm.

+0

Bu, kendisini hem JavaScript hem de CSS'de IE için forking'e borç veren en başarısız güvenli ve geleceğe yönelik bir yaklaşımdır ve * diğer tüm tarayıcılar tarafından HTML yorumları olarak kabul edilir. –

2

Tarayıcı algılaması yerine özellik algılamayı kullanın. http://modernizr.com/

+2

Sevgili _Aegis_, lütfen sadece bağlantılardan kaçınmayın, çünkü bağlantı güncel değilken değerli bilgiler belgedür. Bunun yerine, ana fikrinizin ek bir açıklamasını burada verin. Teşekkürler! – Trinimon

+0

@Trimon: Noted;) – Aegis

İlgili konular