Foros del Web » Creando para Internet » CSS »

detectar navegador

Estas en el tema de detectar navegador en el foro de CSS en Foros del Web. Estimados, estoy tratando de hacer que mi archivo html detecte si esta en chrome y cargue otro archivo css. Sin embargo me tira error. El ...
  #1 (permalink)  
Antiguo 03/10/2011, 11:32
Avatar de chacabuco  
Fecha de Ingreso: octubre-2010
Ubicación: Buenso Aires
Mensajes: 85
Antigüedad: 13 años, 6 meses
Puntos: 0
detectar navegador

Estimados, estoy tratando de hacer que mi archivo html detecte si esta en chrome y cargue otro archivo css. Sin embargo me tira error.
El link es este
http://www.marisadipalma.com.ar/chrome/

Y el código que estoy usando es este:
<?php
function is_chrome(){
return(eregi("chrome", $_SERVER['HTTP_USER_AGENT']));
}
if(is_chrome()){
echo '<link rel="stylesheet" type="text/css" href="css/styles_chrome.css" />';
}
?>

No me doy cuenta qué es lo que hago mal.
Si alguien me da una manito estaré muy agradecida.
  #2 (permalink)  
Antiguo 03/10/2011, 11:39
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 9 meses
Puntos: 269
Respuesta: detectar navegador

amigo, usa esta clase browser.php es fantastica, la vengo usando hace tiempo. Cualquier duda me preguntas.

baja la clase

Crea un archivo funciones.php y pega esto:
Código PHP:
Ver original
  1. <?php
  2. function navegador($browser){  
  3.     $navegador = $browser->getBrowser();
  4.   return $navegador;
  5. }
  6. function version($browser){
  7.     $version = $browser->getVersion();
  8.   return $version;
  9. }
  10. function plataforma($browser){
  11.     $plataforma = $browser->getPlatform();
  12.   return $plataforma;
  13. }
  14. ?>

guarda estos dos archivos en una carpeta a la que llamas "browser_php"

creas otro archivo. llamalo "switchCrossBrowser.php" por ejemplo, y pega:
Código PHP:
Ver original
  1. <?php
  2.     require_once('browser_php/Browser.php');
  3.     require_once("browser_php/funciones.php");
  4.     $browser = new Browser();
  5.     $nav = navegador($browser); $ver = version($browser); //$so  = plataforma($browser);
  6.     //echo "Navegador: ".$nav;      echo "<br />";
  7.     //echo "Version:".$ver;         echo "<br />";
  8.     /************************************************************************************************************/
  9.  
  10.     if($nav == "Internet Explorer") {
  11.                                         echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/IE.css'/>";
  12.        
  13.         if($ver <= 6) {             //echo "Afectamos a IE 6.0";
  14.                                         //echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/IE6.css'/>";
  15.         }
  16.        
  17.         if($ver == "7.0" ) {    //echo "Afectamos a IE 7.0";
  18.                                         echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/IE7.css'/>";
  19.         }
  20.        
  21.         if($ver == "8.0" ) {        //echo "Afectamos a IE 8.0";
  22.                                         echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/IE8.css'/>";
  23.         }
  24.        
  25.         if($ver >= 9 ) {            //echo "Afectamos a IE 9+";
  26.                                         echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/IE9.css'/>";
  27.         }
  28.              
  29.     }
  30.     if($nav == "Firefox") { //echo "Afectamos a todas las versiones de Firefox";
  31.     echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/Firefox.css'/>";
  32.     }
  33.    
  34.     /*
  35.     if($nav == "Opera") {       //echo "Afectamos a todas las versiones de Opera";
  36.                                         //echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/Opera.css'/>";
  37.     }
  38.     if($nav == "Chrome") {  //echo "Afectamos a todas las versiones de Chrome";
  39.                                         //echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/Chrome.css'/>";
  40.     }
  41.     if($nav == "Firefox") { //echo "Afectamos a todas las versiones de Firefox";
  42.                                         //echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/Firefox.css'/>";
  43.     }  
  44.     if($nav == "Safari") {      //echo "Afectamos a todas las versiones de Safari";
  45.                                         //echo "<link rel='stylesheet' type='text/css' href='site_media/crossbrowser/Safari.css'/>";
  46.     }  
  47.     */
  48. ?>


Finalmente haces un include de switchCrossBrowser.php en donde lo quieras usar. Saludos

Última edición por cristian_cena; 03/10/2011 a las 11:45
  #3 (permalink)  
Antiguo 03/10/2011, 12:14
Avatar de chacabuco  
Fecha de Ingreso: octubre-2010
Ubicación: Buenso Aires
Mensajes: 85
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: detectar navegador

Hola Cristian, muchas gracias por tu respuesta.
El punto que no conozco php y lo que hago lo hago a ciegas, sin saber que estoy haciendo concretamente. Seguí todos los pasos y aun asi no me sale.
No hay una formas mas sencilla? como un if o algo asi?
Perdón por mi ignorancia pero esta opción me excede......
  #4 (permalink)  
Antiguo 03/10/2011, 12:20
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 9 meses
Puntos: 269
Respuesta: detectar navegador

chacabuco, por eso te puse todo el codigo, copias pegas y sale caminando :)

cambias la extension de por ejemplo tu index.html reemplazandola por index.php e incluis el archivo con el sguiente codigo:
<?php
include("switchCrossBrowser.php");
?>

La deteccion del navegador la debes hacer con php o javascript.
  #5 (permalink)  
Antiguo 03/10/2011, 12:42
Avatar de chacabuco  
Fecha de Ingreso: octubre-2010
Ubicación: Buenso Aires
Mensajes: 85
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: detectar navegador

Cristian, nuevamente muchas gracias por tu ayuda.
Mira, en este link he publicado los archivos
http://www.marisadipalma.com.ar/zaietz/chrome.html
pero cuando lo veo en Chrome no carga el archivo correcto......
Cargué las carpetas, los archivos, modifiqué las rutas, todo......
  #6 (permalink)  
Antiguo 04/10/2011, 10:38
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: detectar navegador

Yo tengo implementada esta, es similar a la de @cristian_cena, tambien podés descargar un código de ejemplo
http://foros.emprear.com/deteccion-browser/

en tu caso sería algo así

Código PHP:
Ver original
  1. <?php
  2. if ( $nombre_navegador == 'Chrome' ){
  3. echo "<link rel='stylesheet' type='text/css' href='chrome.css'/>";
  4. }else{
  5. echo "<link rel='stylesheet' type='text/css' href='estilos.css'/>";
  6. }
  7. ?>

Pero hay un par de detalles, primero, el link que señalas, no parece estar siendo procesado por php, segundo, tu archivo chrome.css, carga todos los estilos de la página ó solo redefine al gun valor solo para ciertos elementos? porque si es lo ultimo, debería ser el ultimo css en cargar


Saludos


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 05/10/2011, 09:21
Avatar de chacabuco  
Fecha de Ingreso: octubre-2010
Ubicación: Buenso Aires
Mensajes: 85
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: detectar navegador

Claro! ese es el punto.... porque no está siendo procesado por php?
Si corrijo eso ya lo soluciono....
  #8 (permalink)  
Antiguo 06/10/2011, 07:37
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 2 meses
Puntos: 306
Respuesta: detectar navegador

Hola Chacabuco
Comentario al margen: "Antecedentes" me suena a causa penal, jajaja. Lo dejaría como "Proyectos"
Saludos
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #9 (permalink)  
Antiguo 20/11/2011, 10:44
 
Fecha de Ingreso: marzo-2006
Mensajes: 35
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: detectar navegador

mmm lo que pasa es que esa clase... no da bien los resultados, nose de que dependerá ese problema, pero el hecho es que para Chrome, ami me devuelve "Safari" jaja... Para 'Safari' -> Safari... ambos sin version.

Otro problema es la version... tampoco me las devuelve bien para opera....
-Opera 11.52 me da: 9.8

IE y FF joya!.
  #10 (permalink)  
Antiguo 20/11/2011, 11:14
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: detectar navegador

Nanod10, vaya a saber que estás viendo, en mis versiones actuales me muestra

para chrome
Agente:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2

Navegador: Chrome
Versión: 15


Para Opera
Agente:
Opera/9.80 (Windows NT 6.1; U; es-LA) Presto/2.9.168 Version/11.52

Navegador: Opera
Version: 11


__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: chrome
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:40.