Si vous ne souhaitez pas utiliser $.browser
, regardez cas 1, sinon peut-être que cas 2 et 3 peuvent simplement vous aider à être informé car il n'est pas recommandé d'utiliser $.browser
(l'agent utilisateur peut être falsifié en l'utilisant). Une alternative peut être d'utiliser jQuery.support
qui détectera la prise en charge des fonctionnalités et non les informations sur l'agent.
Mais...
Si vous insistez pour obtenir le type de navigateur (juste Chrome ou Safari) mais sans utiliser $.browser
, cas 1 est ce que vous recherchez...
Cela correspond à vos besoins :
Cas 1: (Pas de jQuery et pas de $.browser, juste du javascript)
Démonstration en direct: http://jsfiddle.net/oscarj24/DJ349/
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
if (isChrome) alert("Vous utilisez Chrome !");
if (isSafari) alert("Vous utilisez Safari !");
Ces cas que j'ai utilisés auparavant ont bien fonctionné, mais ils ne sont pas recommandés...
Cas 2: (Utilisation de jQuery et de $.browser, celui-ci est délicat)
Démonstration en direct: http://jsfiddle.net/oscarj24/gNENk/
$(document).ready(function(){
/* Obtenir le navigateur */
$.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
/* Détecter Chrome */
if($.browser.chrome){
/* Faire quelque chose pour Chrome à ce stade */
/* Enfin, s'il s'agit de Chrome, alors jQuery pense que c'est Safari donc nous devons lui dire que ce n'est pas le cas */
$.browser.safari = false;
}
/* Détecter Safari */
if($.browser.safari){
/* Faire quelque chose pour Safari */
}
});
Cas 3: (Utilisation de jQuery et de $.browser, solution "élégante")
Démonstration en direct: http://jsfiddle.net/oscarj24/uJuEU/
$.browser.chrome = $.browser.webkit && !!window.chrome;
$.browser.safari = $.browser.webkit && !window.chrome;
if ($.browser.chrome) alert("Vous utilisez Chrome !");
if ($.browser.safari) alert("Vous utilisez Safari !");
2 votes
Vous pouvez utiliser jQuery.browser, mais ce n'est pas recommandé car l'agent utilisateur peut être falsifié. Il est plutôt recommandé d'utiliser la détection de fonctionnalités, qui n'est pas falsifiable.
0 votes
Pourquoi essayez-vous de les détecter? Il y a probablement une meilleure façon que d'utiliser la détection du navigateur.
0 votes
@PeeHaa, tu penserais... mais non.
1 votes
Pourquoi avez-vous besoin de détecter Chrome ou Safari? Que cherchez-vous à faire?
1 votes
Comment pourrait-il utiliser la détection de fonctionnalités? Deux navigateurs avec les mêmes fonctionnalités donneraient les mêmes résultats!
0 votes
@Quentin bien qu'ils soient tous les deux webkit, je suis assez sûr qu'il y a des différences
2 votes
@PeeHaa Vous devriez apprendre à utiliser Google et jQuery.browser: api.jquery.com/jQuery.browser. Il utilise l'agent utilisateur et jQuery recommande d'utiliser la détection des fonctionnalités. jQuery.browser est obsolète.
0 votes
@ianpgall Excuse-moi? Tu me dis ce que je devrais faire? Est-ce que j'ai bien lu?
1 votes
@PeeHaa - Génial. Donc Chrome 27 ne prend pas en charge FOO mais Safari le fait. Vous décidez donc lequel est lequel en fonction de divers éléments, y compris le support de FOO. Ensuite, Chrome 28 sort et prend en charge FOO, donc l'ancienne version de jQuery pense que Chrome 28 est Safari. (Et cet exemple montre pourquoi la détection de fonctionnalités est meilleure que la détection de navigateur et pourquoi vous ne pouvez pas utiliser la détection de fonctionnalités pour déterminer de manière fiable le navigateur - rester à jour est difficile)
0 votes
@PeeHaa Si vous voulez poster des commentaires/réponses qui sont corrects, vous devriez probablement d'abord apprendre à leur sujet, c'est tout...
1 votes
@PeeHaa Je l'ai plutôt compris comme "Vous ne saviez pas que jQuery.browser utilisait la détection des fonctionnalités ? Wow. Juste wow." Désolé pour la confusion !
0 votes
Webkit est le nouveau IE6 !!!
0 votes
@Quentin la détection des fonctionnalités ne vous aidera jamais à contourner les bizarreries des navigateurs, ce qui est à mon avis la principale raison de faire de la détection de navigateur en premier lieu. La détection des fonctionnalités adresse une très petite gamme de problèmes, alors que la correction des bizarreries spécifiques aux navigateurs est au cœur de la compatibilité inter-navigateurs. À cette lumière, vous devriez probablement utiliser la détection des fonctionnalités une fois tous les trente-six du mois, lorsque vous avez vraiment besoin de tester une fonctionnalité, mais vous devrez toujours tester le navigateur pour corriger cette irritation Safari / IE / FF / Chrome anomalie/bug.
0 votes
Si vous avez besoin de détecter les navigateurs Webkit, jetez un œil à ceci : stackoverflow.com/a/21756811/1320764
0 votes
Un cas de détection du navigateur en 2019 : dans iOS Safari, il n'est pas possible de définir un champ de saisie de date HTML5 comme étant "vide". Ainsi, dans ce cas uniquement, il est bon d'utiliser du JS pour ajouter un bouton "effacer" manuel à côté de ces champs. Choix de conception stupide d'Apple, mais un véritable cas justifié pour la détection du navigateur.