Saya ingin memantulkan pengguna situs web kami ke halaman kesalahan jika mereka menggunakan versi Internet Explorersebelum v9. Hanya tidak sepadan dengan waktu dan uang kita untuk mendukung IE pre-v9. Pengguna semua browser non-IE lainnya baik-baik saja dan tidak boleh terpental. Berikut kode yang diusulkan:
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
}
}
Akankah kode ini berhasil?
Untuk menghadang beberapa komentar yang mungkin akan menghampiri saya:
- Ya, saya tahu bahwa pengguna dapat memalsukan
useragentstring mereka . Saya tidak khawatir. - Ya, saya tahu bahwa pro pemrograman lebih suka mengendus fitur-dukungan daripada jenis browser tetapi saya merasa pendekatan ini tidak masuk akal dalam kasus ini. Saya sudah tahu bahwa semua browser (yang relevan) non-IE mendukung fitur yang saya butuhkan dan bahwa semua
pre-v9 IEbrowser tidak. Memeriksa fitur demi fitur di seluruh situs akan sia-sia. - Ya, saya tahu bahwa seseorang yang mencoba mengakses situs menggunakan
IE v1(atau> = 20) tidak akan mendapatkan 'badBrowser' disetel ke true dan halaman peringatan tidak akan ditampilkan dengan benar. Itu risiko yang bersedia kami ambil. - Ya, saya tahu Microsoft memiliki "komentar kondisional" yang dapat digunakan untuk deteksi versi browser yang tepat. IE tidak lagi mendukung komentar bersyarat
IE 10, membuat pendekatan ini sama sekali tidak berguna.
Adakah masalah nyata lainnya yang harus diperhatikan?