ฉันต้องการตีกลับผู้ใช้เว็บไซต์ของเราไปยังหน้าข้อผิดพลาดหากพวกเขาใช้เวอร์ชันInternet Explorer
ก่อนหน้า v9 IE pre-v9
มันเป็นเพียงไม่คุ้มค่าเวลาและเงินของเราที่จะสนับสนุน ผู้ใช้เบราว์เซอร์ที่ไม่ใช่ IE อื่น ๆ ทั้งหมดนั้นใช้ได้และไม่ควรถูกตีกลับ นี่คือรหัสที่เสนอ:
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
}
}
รหัสนี้จะทำเคล็ดลับหรือไม่
หากต้องการออกความคิดเห็นเล็ก ๆ น้อย ๆ ที่อาจจะมาถึงฉัน:
- ใช่ฉันรู้ว่าผู้ใช้สามารถปลอมแปลง
useragent
สตริงของพวกเขา ฉันไม่กังวล - ใช่ฉันรู้ว่าผู้เชี่ยวชาญด้านการเขียนโปรแกรมชอบที่จะดมกลิ่นสนับสนุนฟีเจอร์แทนเบราว์เซอร์ชนิด แต่ฉันไม่รู้สึกว่าวิธีการนี้เหมาะสมในกรณีนี้ ฉันรู้แล้วว่าเบราว์เซอร์ที่ไม่ใช่ IE (ที่เกี่ยวข้อง) ทั้งหมดสนับสนุนคุณสมบัติที่ฉันต้องการและ
pre-v9 IE
เบราว์เซอร์ทั้งหมดไม่ได้ การตรวจสอบคุณสมบัติตามคุณสมบัติทั่วทั้งไซต์จะเป็นการสิ้นเปลือง - ใช่ฉันรู้ว่ามีคนพยายามเข้าถึงไซต์โดยใช้
IE v1
(หรือ> = 20) จะไม่ได้รับการตั้งค่า 'badBrowser' เป็นจริงและหน้าคำเตือนจะไม่แสดงอย่างถูกต้อง นั่นคือความเสี่ยงที่เรายินดีรับ - ใช่ฉันรู้ว่า Microsoft มี "ความคิดเห็นตามเงื่อนไข" ที่สามารถใช้สำหรับการตรวจสอบเวอร์ชันเบราว์เซอร์ที่แม่นยำ IE ไม่สนับสนุนการแสดงความคิดเห็นแบบมีเงื่อนไขอีกต่อไปแล้ว
IE 10
ทำให้วิธีนี้ไร้ประโยชน์อย่างแน่นอน
ปัญหาอื่นใดที่ชัดเจนที่ควรระวัง?