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

From Joomla! Documentation

This page is a translated version of the page How to determine browser capabilities and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎Nederlands

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 , tant que faire se peut (selon l'auteur), d'éviter d'écrire du code spécifique pour les navigateurs.