Saya ingin memantulkan pengguna situs web kami ke halaman kesalahan jika mereka menggunakan versi Internet Explorer
sebelum 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
useragent
string 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 IE
browser 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?