Il semble que jQuery.browser soit capable d'identifier assez facilement le webkit à partir de 1.4. Mais comment puis-je l'utiliser pour distinguer Chrome de Safari (et vice-versa)?
Réponses
Trop de publicités?Puisque Sarfraz n'a pas corrigé sa réponse (merci Sarfraz de m'avoir pointé dans la bonne direction), je posterai le code de fonctionnement ici.
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's 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;
}
Vikrant Chaudhary
Points
4306
Sans 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);
}
Avec jQuery
(La suite ne fonctionnera pas avec jQuery 1.9 et supérieur car jQuery.browser
a été supprimé de jQuery. Voir http://api.jquery.com/jQuery.browser/ )
$.browser.chrome = $.browser.webkit && !!window.chrome;
$.browser.safari = $.browser.webkit && !window.chrome;
Sarfraz
Points
168484
Vous pouvez faire comme:
// 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's 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;
}
Scott Evernden
Points
17858
Hugo Stieglitz
Points
41