Web sitemizin kullanıcılarını Internet Explorerv9 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
useragentdizelerini 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 IEtarayı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 10bu yaklaşımı kesinlikle işe yaramaz hale getiriyor.
Dikkat edilmesi gereken başka bariz konular var mı?