Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/07/2008, 02:15
Avatar de mapper
mapper
 
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 21 años, 3 meses
Puntos: 1
[MEJORAR] Un detector de navegador.

Para los que no me conocen yo vengo del mundo de PHP por lo que armar algo como esto no me es muy complicado, pero seguro que alguien puede aportar algo.

Les comento cual fue la situación:
Todos los navegadores me tomaban una parte de un sitio diferente. Algo tan simple como un texto que tenía que medir exactamente un ancho fijo, se volvió algo muy complicado.
La solución es simple, detectar que navegador usan y cargar un css diferente para cada caso.
Pero hay un problema Todos tienen una teoría diferente y separan el mundo de los navegadores en IE y el resto.
Buscando y buscando no encontré mas que ideas para poder armarlo bien (bien creo yo..)



Bueno, aquí está el código. Espero sea muy claro y podamos aportar todos un poco para luego ponerlo en las FAQ's así, de esta manera, el próximo que tenga un problema como éste puede simplificar su día.


Código PHP:
<script type="text/javascript">
var 
navegador navigator.appName;
var 
codename navigator.appCodeName;
var 
navcode;
switch(
navegador)
{
//NAVIGATOR CODES
//IE = Microsoft Internet Explorer
//MZ = Mozilla (or mozilla supported web browsers)
//SF = Apple safari
//OP = Opera
//KQ = Konqueror
//UK = DESCONOCIDO
case "Netscape":
if (
navigator.appVersion.search(/safari/i)!= -){
navcode "sf"
} else {
navcode "mz";
}
break;
case 
"Microsoft Internet Explorer":
navcode "ie";
break;
case 
"Opera":
navcode "op";
break;
case 
"Konqueror":
navcode "kq";
break;
default:
navcode "uk";
break;
}
document.write("<link href='" navcode "style.css' rel='stylesheet' type='text/css'");
</script> 

Con este código solamente logramos identificar estos navegadores:
//IE = Microsoft Internet Explorer
//MZ = Mozilla (or mozilla supported web browsers)
//SF = Apple safari
//OP = Opera
//KQ = Konqueror
//UK = DESCONOCIDO

Espero tengan ganas de aportar.

PD: tengan en cuenta que para mi esto es un logro ya que no laburo con JavaScript en lo posible.
__________________
-- May The Force Be With You --