ตามที่คนอื่น ๆ ได้กล่าวไว้แล้วการตรวจหาคุณสมบัติจึงเป็นที่ต้องการมากกว่าการตรวจสอบเบราว์เซอร์เฉพาะ สาเหตุหนึ่งคือสามารถเปลี่ยนแปลงสตริงตัวแทนผู้ใช้ได้ อีกสาเหตุหนึ่งคือสตริงอาจเปลี่ยนแปลงและทำลายรหัสของคุณในเวอร์ชันที่ใหม่กว่า
หากคุณยังต้องการทำและทดสอบ Safari เวอร์ชันใด ๆ ฉันขอแนะนำให้ใช้สิ่งนี้
var isSafari = navigator.vendor && navigator.vendor.indexOf('Apple') > -1 &&
navigator.userAgent &&
navigator.userAgent.indexOf('CriOS') == -1 &&
navigator.userAgent.indexOf('FxiOS') == -1;
สิ่งนี้จะใช้ได้กับ Safari ทุกเวอร์ชันในทุกอุปกรณ์: Mac, iPhone, iPod, iPad
แก้ไข
หากต้องการทดสอบในเบราว์เซอร์ปัจจุบันของคุณ: https://jsfiddle.net/j5hgcbm2/
แก้ไข 2
อัปเดตตามเอกสาร Chromeเพื่อตรวจจับ Chrome บน iOS อย่างถูกต้อง
เป็นที่น่าสังเกตว่าเบราว์เซอร์ทั้งหมดบน iOS เป็นเพียงเครื่องห่อสำหรับ Safari และใช้เอ็นจิ้นเดียวกัน ดูความคิดเห็นของ bfred.it เกี่ยวกับคำตอบของเขาเองในหัวข้อนี้
แก้ไข 3
อัปเดตตามเอกสารของ Firefoxเพื่อตรวจจับ Firefox บน iOS อย่างถูกต้อง