Web sitemizin kullanıcılarını Internet Explorer
v9 sürümünden önceki bir sürümünü kullanıyorlarsa bir hata sayfasına geri döndürmek istiyorum . Destek için zaman ve paraya değmez IE pre-v9
. Diğer tüm IE olmayan tarayıcıların kullanıcıları iyidir ve sekilmemelidir. Önerilen kod:
if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE
var badBrowser=(
navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok
navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too
);
if(badBrowser){
// navigate to error page
}
}
Bu kod işe yarayacak mı?
Muhtemelen yoluma gelecek birkaç yorumu yapmak için:
- Evet, kullanıcıların
useragent
dizelerini taklit edebileceklerini biliyorum . Endişelenmiyorum. - Evet, programlama profesyonellerinin tarayıcı türü yerine özellik desteğini koklamayı tercih ettiğini biliyorum, ancak bu yaklaşımın bu durumda mantıklı olduğunu düşünmüyorum. Tüm (alakalı) IE olmayan tarayıcıların ihtiyacım olan özellikleri desteklediğini ve tüm
pre-v9 IE
tarayıcıların desteklemediğini zaten biliyorum . Site genelinde özelliklerin kontrol edilmesi israf olacaktır. - Evet,
IE v1
(veya> = 20) kullanarak siteye erişmeye çalışan birinin 'badBrowser' değerini true olarak ayarlayamayacağını ve uyarı sayfasının düzgün görüntülenmeyeceğini biliyorum. Bu, almaya istekli olduğumuz bir risk. - Evet, Microsoft'un hassas tarayıcı sürümü algılaması için kullanılabilen "koşullu yorumları" olduğunu biliyorum. IE artık koşullu yorumları desteklemiyor ve
IE 10
bu yaklaşımı kesinlikle işe yaramaz hale getiriyor.
Dikkat edilmesi gereken başka bariz konular var mı?