¿Cómo determinar las características del navegador?

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

Diferentes navegadores web, en ocasiones, muestran diferencias en la forma en que se procesa una página. Por esta razón, puedes desear averiguar qué navegador usa un visitante, con el fin de utilizar algunos parámetros CSS específicos del navegador.

El siguiente JavaScript define un objeto de detección simple del navegador, que determina el nombre del navegador y la versión por la decodificación de la cadena navigator.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;
    }
  }
}

Con el fin de utilizar esto en un script, debes crear una instancia de este objeto:

var browser = new browserDetect();

La propiedad browser.name te dará el nombre del navegador (MSIE, Opera, Netscape o Firefox), browser.mainVersion te dará el número de versión principal y browser.minorVersion te dará el número de versión menor.

Sin embargo, debes ser consciente de que esto no es infalible y es generalmente mejor (en opinión de este escritor) evitar tener que escribir el código en función de un navegador específico en medida de lo posible.