Detectar el navegador con javascript
Posted: octubre 21st, 2009 | Author: Michael | Filed under: Front-End | Tags: javascript | 4 Comments »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.
Buenas…
Una cuestión sobre el Safari y los estandares… que sí, los cumple, pero tiene un tema con la forma en la que maneja las precargas cuando el preloader te deriva a otra página y me está poniendo de cabeza… porque tiende a volver a cargar los clips desde cero, cosa que con IE con Firefox no pasa.
Saludos,
Amigo no soy muy diestro en JavaScript te queria preguntar un Standar para detectar cuando un usuario cierra el navegador, ya que los eventos onUnload y onbeforeUnload no se ejecutan en cualquier navegador.
Espero tu respuesta Saludos..
“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.”
Totalmente mentira. No siempre en todas sus versiones cumple con todos los estándares y mucho menos es el mejor navegador.
Parece que hay gente que solo siente orgullo por usar Firefox como si eso los haría mejores web-navegantes. No hay que fanatizarse, y no digo que sea un mal navegador pero tampoco es lo que dicen que es. Si vamos a compararlo con por ejemplo Opera, Firefox pierde en casi todos sus aspectos porque Opera si cumple con los estándares y supera a todos en velocidad aunque en algunas versiones esta cabeza a cabeza con Chrome, otro navegador que sacando que tiene pocas funciones destroza a Firefox.