IE Sürümünü User-Agent'tan Alın
var ie = 0;
try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; }
catch(e){}
Nasıl çalışır: Tüm IE sürümleri için kullanıcı aracısı dizesi "MSIE alanı sürümü " veya "Trident diğer metin rv alanı veya iki nokta sürümü " bölümünü içerir . Bunu bilerek, String.match()
normal bir ifadeden sürüm numarasını alırız . try-catch
Kodu kısaltmak için bir blok kullanılır, aksi takdirde IE olmayan tarayıcılar için dizi sınırlarını test etmemiz gerekir.
Not: Kullanıcı aracısı, bazen tarayıcılarını bir "uyumluluk moduna" ayarladıysa, kasıtlı olarak taklit edilebilir veya atlanabilir. Bu pratikte bir sorun gibi görünmese de.
User-Agent olmadan IE Sürümü edinin
var d = document, w = window;
var ie = ( !!w.MSInputMethodContext ? 11 : !d.all ? 99 : w.atob ? 10 :
d.addEventListener ? 9 : d.querySelector ? 8 : w.XMLHttpRequest ? 7 :
d.compatMode ? 6 : w.attachEvent ? 5 : 1 );
Nasıl çalışır: IE'nin her sürümü, önceki sürümlerde bulunmayan ek özellikler için destek ekler . Böylece özellikleri yukarıdan aşağıya test edebiliriz. Bir üçlü olsa dizisi, kısalık için burada kullanılan if-then
ve switch
ifadeleri gibi iyi çalışır. Değişken ie
, eski için 5-11 veya 1 veya yeni / IE olmayanlar için 99 tamsayısına ayarlanır. IE 1-11'i tam olarak test etmek istiyorsanız 0 olarak ayarlayabilirsiniz.
Not: Kodunuz, benzer şeyler için çoklu dolgular ekleyen üçüncü taraf komut dosyalarına sahip bir sayfada çalıştırılırsa nesne algılama bozulabilir document.addEventListener
. Bu gibi durumlarda kullanıcı-aracı en iyi seçenektir.
Tarayıcının Modern olup olmadığını algılama
Yalnızca bir tarayıcının çoğu HTML 5 ve CSS 3 standardını destekleyip desteklemediğiyle ilgileniyorsanız , IE 8 ve daha düşük sürümlerin birincil sorunlu uygulamalar olarak kaldığını makul bir şekilde kabul edebilirsiniz . Test yapmak window.getComputedStyle
, size modern tarayıcıların oldukça iyi bir karışımını verecektir (IE 9, FF 4, Chrome 11, Safari 5, Opera 11.5). IE 9, standart desteği büyük ölçüde geliştirir, ancak yerel CSS animasyonu IE 10 gerektirir.
var isModernBrowser = ( !document.all || ( document.all && document.addEventListener ) );