Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/05/2008, 14:36
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: La solución definitiva para los conflictos entre navegadores

La idea está buena, una solución simple al problema

Solo tengo un par de comentarios que hacer:

1.- cuidado con el orden :)
Parte de la identificación de Konqueror es "KHTML (like Gecko)", por lo que según este programa, Konqueror sería identificado como Mozilla

2.- Si la función se usa tal cual está, el vector de navegadores se crea cada vez que se llama a la función. La solución para ganar unos milisegundos es crear el vector fuera de la función y luego hacerlo disponible con global, o declarar la variable como static y en cada ejecución de la función ver si ya tiene su valor o no. La más rápida es la primera opción, pero seguro que a los puristas del diseño de software no les gusta nada, ellos odian las variables globales

3.- Para ahorrar código y mejorar la claridad, propongo cambiar los if por:
Código PHP:
<?php
$navegador 
ObtenerNavegador($_SERVER['HTTP_USER_AGENT']);

switch(
$navegador) {
    case 
'Internet Explorer 6'$css 'ie6'; break;
    case 
'Internet Explorer 7'$css 'ie7'; break;
    case 
'Operai' $css 'opera'; break;
    case 
'Safari'$css 'safari'; break;
    default: 
$css 'estilos';
}

?><link rel="stylesheet" media="screen" type="text/css" href="<?php echo $css?>.css" />
incluso podría darse nombres más 'de archivo' al valor devuelto por la función, y luego (aunque se pierda un poco de libertad en la elección del nombre de la hoja de estilos), hacer

Código PHP:
<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $navegador?>.css" />
Si quieren, llámenme "the masta of da milisécon"

Un puntito arriba para el "pana" metacortex por el aporte


Saludos.