Detectar el navegador con javascript
Posted: Octubre 21st, 2009 | Author: Michael | Filed under: Front-End | Tags: javascript | 1 Comment »Hay varias formas de detectar en JS qué navegador está utilizando el cliente para visualizar nuestras webs. En un momento dado nos puede interesar saber el navegador que está utilizando para condicionar la funcionalidad de nuestro script.
Internet Explorer
Para detectar si usa Internet Explorer sin tener en cuenta la versión:
var ie=(document.all)? true:false;
if (ie) alert('Su navegador es Internet Explorer');
Internet Explorer 6
Muchos sabemos que IE6 es un caso especial. El siguiente script nos ayudará a detectar este caso y controlarlo:
var is_ie6 = (window.external && typeof window.XMLHttpRequest == "undefined");
if (is_ie6 ) alert('Su navegador es Internet Explorer 6');
Safari
Para detectar el navegador de Apple:
var is_safari = navigator.userAgent.toLowerCase().indexOf('safari/') > -1;
if (is_safari ) alert('Su navegador es Safari');
Google Chrome
Aunque es un navegador que cumple bastante fielmente los estándares, sigue comportándose en determinados casos de forma especial. Controlaremos este caso así:
var is_chrome= navigator.userAgent.toLowerCase().indexOf('chrome/') > -1;
if (is_chrome) alert('Su navegador es Google Chrome');
No incluyo ningún script para detectar si el navegador es Firefox ya que es un navegador que cumple al 100% los estándares, el cual nos permite tratarlo como el caso por defecto.
El objeto Navigator
En los últimos 2 casos vemos que usamos el objeto navigator que contiene la info que buscamos. De hecho podríamos usar este objeto navigator para detectar cualquier navegador, ya que navigator.userAgent.toLowerCase() nos indica el tipo de navegador que usa, la versión y más información que nos puede servir para controlar cada caso.
Haz clic aquí para ver un ejemplo del objeto Navigator.
Al hacer clic te debe de salir la siguiente información:
Propiedades
Las propiedades de Navigator que podremos consultar son:
- appCodeName. Cadena que contiene el nombre del código del cliente.
- appName. Cadena que contiene el nombre del cliente.
- appVersion. Cadena que contiene información sobre la versión del cliente.
- language. Cadena de dos caracteres que contiene información sobre el idioma de la versión del cliente.
- mimeTypes. Array que contiene todos los tipos MIME soportados por el cliente. A partir de NS 3.
- platform. Cadena con la plataforma sobre la que se está ejecutando el programa cliente.
- plugins. Array que contiene todos los plug-ins soportados por el cliente. A partir de NS 3.
- userAgent. Cadena que contiene la cabecera completa del agente enviada en una petición HTTP. Contiene la información de las propiedades appCodeName y appVersion.
Métodos
- javaEnabled(). Devuelve true si el cliente permite la utilización de Java, en caso contrario, devuelve false.

“No incluyo ningún script para detectar si el navegador es Firefox ya que es un navegador que cumple al 100% los estándares, el cual nos permite tratarlo como el caso por defecto.”
esto es incorrecto…
la propiedad css de opacidad, es particular de FF. asi tambien como la propiedad de css de bordes redondos en los divs.
los navegadores que respetan los standares en su totalidad.
son safari, opera y chrome entre otros.
ej:
-moz-opacity:0.8; // asi es para FF
opacity:0.08; // utilizada por safari opera y chrome. seria lo mas logico para la propiedad.