272 votes

JavaScript : Comment savoir si le navigateur de l’utilisateur est Chrome ?

J’ai besoin d’une fonction retournant une valeur booléenne pour vérifier si le navigateur est Chrome.

Comment créer une telle fonctionnalité ?

369voto

Mr. Bacciagalupe Points 2774

Les agents d'utilisateur peut être usurpée!

Pour vérifier si le navigateur est Google Chrome, essayez ceci:

// please note, that IE11 now returns undefined again for window.chrome
var isChromium = window.chrome,
    vendorName = window.navigator.vendor;
if(isChromium !== null && isChromium !== undefined && vendorName === "Google Inc.") {
   // is Google chrome 
} else { 
   // not Google chrome 
}

Les meilleurs à utiliser la fonctionnalité / propriété de l'objet de la détection! La raison pour laquelle cela fonctionne est que si vous utilisez Google Chrome inspecteur et aller à l'onglet console. De Type "fenêtre" et appuyez sur enter. Ensuite, vous être en mesure d'afficher le modèle DOM des propriétés de la fenêtre "objet". Lorsque vous réduisez l'objet vous pouvez consulter tous les biens, y compris le "chrome" de la propriété.

Vous ne pouvez pas utiliser strictement égal à vrai plus pour vérifier dans IE pour window.chrome. IE utilisée pour renvoyer undefined, maintenant il retourne true. Mais devinez quoi, IE11 maintenant retourne undefined nouveau. IE11 également retourne une chaîne vide "" pour window.navigator.vendor.

J'espère que cela aide!

Mise à JOUR:

Merci à Halcyon991 de remarquer ci-dessous, que le nouvel Opéra de 18+ produit également vrai pour window.chrome. Ressemble à l'Opéra de 18 ans est basé sur Chrome 31. J'ai donc ajouté un assurez-vous que l' window.navigator.vendor est: "Google Inc" et n'est - "Opera Software ASA". Aussi grâce à l'Anneau et Adrien Être pour le heads up sur Chrome 33 de ne pas retourner vrai plus... window.chrome vérifie maintenant si non null. Mais intéresse de près à IE11, j'ai ajouté le vérifier en arrière pour undefined depuis IE11 maintenant sorties undefined, comme il l'a fait lors de la première fois.. puis après quelques mise à jour de la construit sortie à true .. maintenant récente version de mise à jour est sortie undefined de nouveau. Microsoft ne peut pas faire, c'est l'esprit!

228voto

Rion Williams Points 22784
<pre><code></code><p>Toutefois, comme mentionné User Agents peut être usurpées donc il est toujours préférable d’utiliser la fonctionnalité détection (<em><a href="http://modernizr.com/">modernisateur</a></em>) lors de la gestion de ces questions, comme mentionnent d’autres réponses.</p></pre>

22voto

Drew Noakes Points 69288

Une solution beaucoup plus simple consiste simplement à utiliser :

Le juste convertit l’objet en une valeur booléenne. Dans les navigateurs sans Chrome, cette propriété sera , qui n’est pas truthy.

20voto

The Big Lebowski Points 200
Encore plus court

9voto

naveen Points 21236
var is_chrome = /chrome/.test( navigator.userAgent.toLowerCase() );

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X