Như những người khác đã lưu ý, phát hiện tính năng được ưu tiên hơn là kiểm tra một trình duyệt cụ thể. Một lý do là chuỗi tác nhân người dùng có thể bị thay đổi. Một lý do khác là chuỗi có thể thay đổi và phá vỡ mã của bạn trong các phiên bản mới hơn.
Nếu bạn vẫn muốn làm điều đó và thử nghiệm cho bất kỳ phiên bản Safari nào, tôi khuyên bạn nên sử dụng điều này
var isSafari = navigator.vendor && navigator.vendor.indexOf('Apple') > -1 &&
navigator.userAgent &&
navigator.userAgent.indexOf('CriOS') == -1 &&
navigator.userAgent.indexOf('FxiOS') == -1;
Điều này sẽ hoạt động với mọi phiên bản Safari trên tất cả các thiết bị: Mac, iPhone, iPod, iPad.
Biên tập
Để kiểm tra trong trình duyệt hiện tại của bạn: https://jsfiddle.net/j5hgcbm2/
Chỉnh sửa 2
Được cập nhật theo tài liệu Chrome để phát hiện Chrome trên iOS chính xác
Điều đáng chú ý là tất cả các Trình duyệt trên iOS chỉ là trình bao bọc cho Safari và sử dụng cùng một công cụ. Xem bình luận của bfred.it về câu trả lời của chính anh ấy trong chủ đề này.
Chỉnh sửa 3
Cập nhật theo tài liệu Firefox để phát hiện Firefox trên iOS chính xác