Кажется, jQuery.browser может легко идентифицировать webkit с 1.4. Но как я могу использовать его, чтобы отличать Chrome от Safari (и наоборот)?
Различать Chrome из Safari с помощью jQuery.browser
Ответ 1
Так как Сарфраз не исправил свой ответ (спасибо Sarfraz за то, что указал на меня в правильном направлении), я отправлю код функционирования здесь.
var userAgent = navigator.userAgent.toLowerCase();
$.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
// Is this a version of Chrome?
if($.browser.chrome){
userAgent = userAgent.substring(userAgent.indexOf('chrome/') +7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
$.browser.version = userAgent;
// If it is chrome then jQuery thinks it safari so we have to tell it it isn't
$.browser.safari = false;
}
// Is this a version of Safari?
if($.browser.safari){
userAgent = userAgent.substring(userAgent.indexOf('version/') +8);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
$.browser.version = userAgent;
}
Ответ 2
Без jQuery
isChrome = function() {
return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
}
isSafari = function() {
return /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
}
С jQuery
(Ниже не будет работать с jQuery 1.9 и выше, поскольку jQuery.browser
был удален из jQuery. См. http://api.jquery.com/jQuery.browser/)
$.browser.chrome = $.browser.webkit && !!window.chrome;
$.browser.safari = $.browser.webkit && !window.chrome;
Ответ 3
Вы можете сделать так:
// Is this a version of Chrome?
if($.browser.chrome){
userAgent = userAgent.substring(userAgent.indexOf('chrome/') +7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
// If it is chrome then jQuery thinks it safari so we have to tell it it isn't
$.browser.safari = false;
}
// Is this a version of Safari?
if($.browser.safari){
userAgent = userAgent.substring(userAgent.indexOf('safari/') +7);
userAgent = userAgent.substring(0,userAgent.indexOf('.'));
version = userAgent;
}
Ответ 4
/Chrome/.test(navigator.userAgent)
Ответ 5
Также для пользователей, не являющихся JQuery:
navigator.userAgent.indexOf('WebKit') + 1 ?
((navigator.vendor || '').indexOf('Apple') + 1 ? /* Safari */ : /* Chrome */)
: /* not Webkit */
Ответ 6
window.chrome?$.browser.chrome=!0:($.browser.webkit&&($.browser.safari=!0),$.browser.chrome=!1);
Этот патч добавляет $. browser.chrome, а также исключает обнаружение Goolge Chrome из $. browser.safari
Ответ 7
Вы также можете попробовать использовать этот подход, он работает для меня.
isSafari: function ()
{
var isSafari = (navigator.userAgent.indexOf('Safari') != -1
&& navigator.userAgent.indexOf('Chrome') == -1)
console.log('IsSafari : ' + isSafari);
return isSafari;
},