Maison >interface Web >js tutoriel >Comment utiliser l'attribut userAgent de JavaScript pour déterminer le type de navigateur

Comment utiliser l'attribut userAgent de JavaScript pour déterminer le type de navigateur

不言
不言original
2019-01-12 14:01:463988parcourir

Pour déterminer le type de navigateur, nous pouvons utiliser l'attribut userAgent de l'objet Navigator fourni en JavaScript. C'est le seul attribut qui peut obtenir des informations telles que le type et la version du navigateur exécutant JavaScript. à utiliser, mais si vous faites une mauvaise navigation Il est facile de faire des erreurs en jugeant l'ordre du processeur, il faut donc être prudent.

Comment utiliser l'attribut userAgent de JavaScript pour déterminer le type de navigateur

Jetons d'abord un coup d'œil à la syntaxe de base de l'attribut userAgent

window.navigator.userAgent;

De cette façon, vous pouvez obtenir la description des informations du navigateur "String" comme valeur de retour.

Le but est d'obtenir l'information sous forme de chaîne jusqu'au bout !

Par conséquent, il est nécessaire d'extraire le type et la version du navigateur dans les informations sur les caractères à l'aide de méthodes telles que indexOf().

Comment obtenir les informations du navigateur ?

Créons un programme qui récupère réellement le type de navigateur !

Commencez par obtenir les informations du navigateur à partir de l'attribut userAgent.

//方法①
var agent = window.navigator.userAgent;
//方法②
var agent = window.navigator.userAgent.toLowerCase();

La méthode ① utilise l'attribut userAgent comme d'habitude, mais ② exécute finalement toLowerCase().

En fait, les informations du navigateur que vous obtenez sont une chaîne mixte de lettres majuscules et minuscules, il est donc plus facile de savoir si elles sont essentiellement entièrement en minuscules ou en majuscules.

Donc, de manière générale, je l'écrirai en utilisant la méthode ② !

var agent = window.navigator.userAgent.toLowerCase();
var result = agent.indexOf('chrome') > -1;
console.log(result);

Dans cet exemple, indexOf() est utilisé pour confirmer si le texte « chrome » obtenu à partir des informations du navigateur existe.

Renvoie "-1" s'il n'est pas présent, ou "position du caractère" s'il est présent.

Par conséquent, grâce à la comparaison de "> -1", "vrai/faux" peut être obtenu, afin que le jugement puisse être porté.

Jugement du navigateur

Actuellement, il existe différents navigateurs, tels que "IE", "Chrome", "Safari" et "Firefox" comme navigateurs grand public

Voyons comment chaque navigateur est jugé !

De manière générale, chaque nom de navigateur est essentiellement jugé dans l'ordre via l'instruction IF.

var agent = window.navigator.userAgent.toLowerCase();
if(agent.indexOf('msie') > -1) { 
  console.log('IE浏览器'); 
} else if(agent.indexOf('edge') > -1) { 
  console.log('Edge浏览器');
} else if(agent.indexOf('chrome') > -1) {
  console.log('Chrome浏览器');
} else if(agent.indexOf('safari') > -1) {
  console.log('Safari浏览器');
} else if(agent.indexOf('firefox') > -1) {
  console.log('Firefox浏览器');
} else {
  console.log('其他浏览器');
}

Dans cet exemple, userAgent est utilisé pour obtenir des informations sur le navigateur, et indexOf() détermine chaque nom de navigateur dans l'ordre.

Nous en avons parlé un peu au début, mais l'ordre de comparaison est important !

En fait, lorsque vous inspectez le navigateur Edge à l'aide de l'attribut userAgent, il contient les caractères "chrome" et "safari".

Vérifiez également que Chrome contient le mot « safari ».

De cette façon, certains cas contiendront des noms différents de ceux du navigateur d'origine, il est donc nécessaire de comparer d'abord les navigateurs à enquêter.

En gros, garantissons au moins l'ordre de « Edge » → « Chrome » → « Safari » !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn