Comment déterminer les capacités d'un navigateur ?

From Joomla! Documentation

Revision as of 16:04, 22 May 2015 by Sandra97 (talk | contribs)
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎中文(台灣)‎

Il peut arriver que différents navigateurs web affichent de façon différente le rendu d'une page. De ce fait, vous pouvez souhaiter déterminer le navigateur utilisé par un visiteur afin de fournir des CSS spécifiques pour ce navigateur.

Le code JavaScript suivant définit une simple détection objet du navigateur qui détermine le nom du navigateur et la version en décodant la chaîne navigateur.userAgent.

function browserDetect()
{
  var browserNames=new Array("Opera", "MSIE","Netscape","Firefox");
  this.name="NK";
  this.mainVersion="NK";
  this.minorVersion="NK";
  
  for (var i=0; i< browserNames.length; i++)
  {
   var pattern='('+browserNames[i]+')'+'.([0-9]+)\.([0-9]+)';    
   var myRegExp=new RegExp(pattern);
   if (myRegExp.test(navigator.userAgent))
    {
      var results=myRegExp.exec(navigator.userAgent);
      this.name=results[1];
      this.mainVersion=results[2];
      this.minorVersion=results[3];
      break;
    }
  }
}

Afin de l'utiliser dans un script, il convient de créer une instance pour cet objet :

var browser = new browserDetect();

La propriété browser.name vous fournira le nom du navigateur (MSIE, Opera, Netscape ou Firefox), browser.mainVersion vous fournira le numéro de la version principale et browser.minorVersion vous fournira le numéro de version mineure.

Cependant, vous devez être conscient que ce n'est pas infaillible et qu'il est généralement préférable (selon l'auteur), dans la mesure du possible, d'éviter d'écrire du code spécifique pour les navigateurs.