Foros del Web » Programando para Internet » Javascript »

Detección de browsers

Estas en el tema de Detección de browsers en el foro de Javascript en Foros del Web. Hola a todos. Necesito que por favor prueben el siguiente script en distintos navegadores y me copien literalmente el resultado reportado (usando el viejo truco ...
  #1 (permalink)  
Antiguo 29/01/2003, 09:37
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Detección de browsers

Hola a todos.

Necesito que por favor prueben el siguiente script en distintos navegadores y me copien literalmente el resultado reportado (usando el viejo truco del cut & paste).

Código PHP:
<html>
 <
head>
  <
script LANGUAGE="JavaScript">

   function 
getBrowserType(){
    var 
sUserAgent;
    var 
sMajor;
    
sUserAgent   "<b>userAgent: </b>" navigator.userAgent.toLowerCase();
    
sMajor       "<b>appVersion: </b>" navigator.appVersion.toLowerCase();
    return 
sUserAgent "<br>" sMajor;
   }

  
</script>
  <title></title>
 </head>
 <body>
  <script language="JavaScript">
   document.writeln(getBrowserType());
  </script>
 </body>
</html> 
Mucho me serviría obtener resultados de los siguientes browsers:
- Internet Explorer 4
- Internet Explorer 5.0
- Internet Explorer 5.5
- Internet Explorer 6

- Netscape 4
- Netscape 6 o 7

- Mozilla cualquier vesión.
- Opera cualquier versión.
- Otros (Lynx, Konkeror, etc.)

Saludos.
  #2 (permalink)  
Antiguo 29/01/2003, 09:39
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Hola Kaopectate.

Con mi Internet Explorer versión 5.00.3315.1000 he obtenido el siguiente resultado.

userAgent: mozilla/4.0 (compatible; msie 5.01; windows nt 5.0)
appVersion: 4.0 (compatible; msie 5.01; windows nt 5.0)

Espero que tal ambiguedad te sirva.

Saludos.
  #3 (permalink)  
Antiguo 29/01/2003, 10:08
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola "jefe":

explorer 6:
userAgent: mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; digext)
appVersion: 4.0 (compatible; msie 6.0; windows nt 5.1; digext)

netscape 7:
userAgent: mozilla/5.0 (windows; u; windows nt 5.1; es-es; rv:1.0.1) gecko/20020823 netscape/7.0
appVersion: 5.0 (windows; es-es)

opera 6.05:
userAgent: mozilla/4.0 (compatible; msie 5.0; windows xp) opera 6.05 [es]
appVersion: 4.0 (compatible; msie 5.0; windows xp)

opera 7:
userAgent: opera/7.0 (windows xp; u) [en]
appVersion: 7.0 (windows xp; u)

... kao:

Hace poco que instalé opera 7, y voy a hacer un informe muy interesante...

¡Acepta innerHTML!



... creo que hay que empezar a hacer distinciones entre las antiguas operas y la nueva (aunque ...)

Saludos
  #4 (permalink)  
Antiguo 29/01/2003, 10:15
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Gracias caricatos.

En cuanto a tu informe de Opera, me parece una idea muy interesante. Por favor básalo, o incluye en él, los objetos JavaScript para justificar ese hilo en nuestro foro.

Saludos.
  #5 (permalink)  
Antiguo 29/01/2003, 11:45
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Hasta ahora en base a lo que ha reportado caricatos tengo lo siguiente:

Código PHP:
<html>
 <
head>
  <
script LANGUAGE="JavaScript">

   var 
sBrowser;
   var 
sVersion;

   function 
setBrowserType(){
    var 
aBrowFull = new Array("opera""msie""netscape");
    var 
aBrowAbrv = new Array("op",    "ie",   "ns"      );
    var 
sInfo navigator.userAgent.toLowerCase();;

    
sBrowser "";
    for (var 
0aBrowFull.lengthi++){
     if ((
sBrowser == "") && (sInfo.indexOf(aBrowFull[i]) != -1)){
      
sBrowser aBrowAbrv[i];
      
sVersion String(parseFloat(sInfo.substr(sInfo.indexOf(aBrowFull[i]) + aBrowFull[i].length 1)));
     }
    }
   }

   
setBrowserType();

   function 
getBrowserName(){
    return 
sBrowser;
   }

   function 
getBrowserVersion(){
    return 
sVersion;
   }

  
</script>
  <title></title>
 </head>
 <body>
  <script language="JavaScript">
   document.write("Browser: " + getBrowserName() + "<br>");
   document.write("Versión: " + getBrowserVersion() );
  </script>
 </body>
</html> 
Necesito mas data para probar.

Gracias.
  #6 (permalink)  
Antiguo 29/01/2003, 13:49
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 22 años
Puntos: 5
IE 5.5:

userAgent: mozilla/4.0 (compatible; msie 5.5; windows nt 5.0)
appVersion: 4.0 (compatible; msie 5.5; windows nt 5.0)

Con el otro pues ie y la version 5.5
__________________
Yanira
  #7 (permalink)  
Antiguo 29/01/2003, 14:21
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola kao:

No te entiendo... lo de basar lo de opera... abrí mis páginas donde se utiliza el método innerHTML, y funcionaron.

Lo que me parece imposible es conseguir que se vean las páginas de la misma manera en los distintos browsers, pero no sabría justificar nada, sólo es cuestión de verlo.

¡Explícamelo mejor!

Saludos
  #8 (permalink)  
Antiguo 29/01/2003, 15:18
Avatar de mikel_gomez  
Fecha de Ingreso: febrero-2001
Mensajes: 482
Antigüedad: 23 años, 8 meses
Puntos: 3
Re: Pruebas detección de navegadores.

Primer ejemplo:

Mozilla 1.3a:
userAgent: mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.3a) gecko/20021212
appVersion: 5.0 (windows; en-us)

Netscape 7:
userAgent: mozilla/5.0 (windows; u; windows nt 5.1; es-es; rv:1.0.1) gecko/20020823 netscape/7.0
appVersion: 5.0 (windows; es-es)

Explorer 6.0:
userAgent: mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; yie6; ycomp 5.0.2.5)
appVersion: 4.0 (compatible; msie 6.0; windows nt 5.1; yie6; ycomp 5.0.2.5)

Opera 6.01:
userAgent: mozilla/4.0 (compatible; msie 5.0; windows xp) opera 6.01 [en]
appVersion: 4.0 (compatible; msie 5.0; windows xp)


Segundo ejemplo

Mozilla 1.3a:
Browser:
Versión: undefined

Netscape 7:
Browser: ns
Versión: 7

Explorer 6.0:
Browser: ie
Versión: 6

Opera 6.01:
Browser: op
Versión: 6.01

Saludos.
__________________
Mikel Gómez
Hay que aprender mucho para saber poco

  #9 (permalink)  
Antiguo 29/01/2003, 21:57
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
En base a todas los reportes obtenidos, la versión del algoritmo sería la siguiente:

Código PHP:
<html>
 <
head>
  <
script LANGUAGE="JavaScript">

   var 
sBrowser;
   var 
sVersion;

   function 
setBrowserType(){
    var 
aBrowFull = new Array("opera""msie""netscape""gecko");
    var 
aBrowVers = new Array("opera""msie""netscape""rv"   );
    var 
aBrowAbrv = new Array("op",    "ie",   "ns",       "mo"   );
    var 
sInfo navigator.userAgent.toLowerCase();;

    
sBrowser "";
    for (var 
0aBrowFull.lengthi++){
     if ((
sBrowser == "") && (sInfo.indexOf(aBrowFull[i]) != -1)){
      
sBrowser aBrowAbrv[i];
      
sVersion String(parseFloat(sInfo.substr(sInfo.indexOf(aBrowVers[i]) + aBrowVers[i].length 1)));
     }
    }
   }

   
setBrowserType();

   function 
getBrowserName(){
    return 
sBrowser;
   }

   function 
getBrowserVersion(){
    return 
sVersion;
   }

  
</script>
 </head>
 <body>
  <script language="JavaScript">
   setBrowserType();
   document.write("Browser: " + getBrowserName() + "<br>");
   document.write("Versión: " + getBrowserVersion() + "<br><br>" );
  </script>
 </body>
</html> 
No debería dar problema con nada de lo hasta ahora reportado. En cuanto tenga noticias de Lynx u otros navegadores, podremos ampliarlo.

Si alguien tiene una crítica, observación o mejora...

Saludos y gracias.
  #10 (permalink)  
Antiguo 30/01/2003, 11:28
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Hola a todos.

El script resultante ha sido incluido en los FAQs como la entrada número 94.

Se siguen esperando reportes de aquellos que dispongan de Konqueror, Lynx u otros browsers.

Gracias.

Última edición por Kaopectate; 30/01/2003 a las 16:19
  #11 (permalink)  
Antiguo 30/01/2003, 16:44
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola kao:

Ya puestos en los browsers, porqué no preparamos el script definitivo para el maldito cursor de la mano...

Yo siempre he usado este script:
var elCursor = (document.all) ? "hand" : "pointer";
y luego:
eltag.style.cursor = elCursor;

Ya que la manita es "hand" en el explorer, pero tengo algo así en un script y en una versión de opera (6.05) no sale, y en la versión 7 sí...

está de más decir que tanto en explorer como en netscape funciona correctamente (creo ¿?)

Saludos
  #12 (permalink)  
Antiguo 30/01/2003, 19:09
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Me parece perfecto.

Si quieres adelántate con una propuesta y lo pulimos hasta publicarlo.

  #13 (permalink)  
Antiguo 31/01/2003, 03:48
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 10 meses
Puntos: 61
Atenciónnn...

Mi querido Kao. He probado el script con NS 4.7 y no funcionaba. Pero como es una maravilla de script solucionarlo no ha sido problema. Bastaba con añadir la cadena "mozilla" en el array correspondiente y su nombre en los otros dos...

Aquí va mi pequeña aportación a tan gran proyecto.

Siento no estar al tanto de todos estos nuevos proyectos tan interesantes... es uqe me ha pillado una época un poco ajetreada. Entre las abducciones, las pwebs y demás...

Bueno que este no es un talk show como para que empiece a contar mis penas...

Un saludo!!

Ah! El código sería el siguiente:


<html>
<head>
<script LANGUAGE="JavaScript">

var sBrowser;
var sVersion;

function setBrowserType(){
var aBrowFull = new Array("opera", "msie", "netscape", "gecko","mozilla");
var aBrowVers = new Array("opera", "msie", "netscape", "rv","mozilla");
var aBrowAbrv = new Array("op", "ie", "ns", "mo", "ns" );
var sInfo = navigator.userAgent.toLowerCase();;

sBrowser = "";
for (var i = 0; i < aBrowFull.length; i++){
if ((sBrowser == "") && (sInfo.indexOf(aBrowFull[i]) != -1)){
sBrowser = aBrowAbrv[i];
sVersion = String(parseFloat(sInfo.substr(sInfo.indexOf(aBrow Vers[i]) + aBrowVers[i].length + 1)));
}
}
}

setBrowserType();

function getBrowserName(){
return sBrowser;
}

function getBrowserVersion(){
return sVersion;
}

</script>
</head>
<body>
<script language="JavaScript">
setBrowserType();
document.write("Browser: " + getBrowserName() + "<br>");
document.write("Versión: " + getBrowserVersion() + "<br><br>" );
</script>
</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #14 (permalink)  
Antiguo 31/01/2003, 07:43
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Mi muy abducido señor.

En primer lugar quiero expresarle mi agradecimiento por tan significativo aporte a nuestro cacareado algoritmo. Ya los biógrafos del JavaScript habrán de hacer justicia ante el tamaño y calidad de sus aportes. En lo personal, habré de encargarme de asegurar para usted y su perra, un muy buén espacio en CielosDelWeb para cuando desista de tanta abducción.

Sin embargo, abducido caballero, una profunda duda corroe mis entrañas y amenaza con llenar de inquietud la paz de mis noches:

¿Que diablos responde Netscape 4.07 al navigator.userAgent.toLowerCase()?

Muchísimas gracias.
  #15 (permalink)  
Antiguo 31/01/2003, 07:51
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 10 meses
Puntos: 61
Mi siempre admirado Kao:

Más o menos lo que sale es esto:



Espero que el visionado de esta imagen te haga ver lo que esta imagen representa.

Recibe un abrazo entre sollozos y lágrimas por el reencuentro tras la abducción.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #16 (permalink)  
Antiguo 31/01/2003, 08:30
 
Fecha de Ingreso: enero-2003
Mensajes: 3
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta de mi navegador (IE v6.0):

userAgent: mozilla/4.0 (compatible; msie 6.0; windows nt 5.0)
appVersion: 4.0 (compatible; msie 6.0; windows nt 5.0)
  #17 (permalink)  
Antiguo 31/01/2003, 10:16
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Hola kao (y su pandilla de contestones)

Con respecto a lo del cursor "manita"...
... puse una página de pruebas aquí

Algunas apreciaciones:

explorer 6, admite cursor:pointer...
opera 6.05 solo pone la manita en los tags "a" (si me entero de otro tag donde cuele te aviso... tal vez con el viejo generador lo pueda probar mejor ¿?)
opera 7 también admite hand y pointer, pero ...

... para probar el script generé el estilo de la siguiente manera:
onmouseover=this.style.cursor=_cursor... (se puede ver en el código)...
... luego "deshabilité" el evento con this.onmouseover = ""...
pero el evento no se deshabilita (otra curiosidad)

Espero que a este mini-informe se le pueda sacar provecho...

Saludos
  #18 (permalink)  
Antiguo 31/01/2003, 23:25
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 10 meses
Puntos: 38
Hola caricatos.

Te he mandado un mp respecto a tu propuesta del algoritmo de la manito. Espero tu respuesta.

KarlanKas, ya he puesto las modificaciones en el FAQ.

Saludos.
  #19 (permalink)  
Antiguo 05/03/2004, 14:16
Avatar de dieguicho  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires
Mensajes: 1.190
Antigüedad: 23 años
Puntos: 1
hola a todos!
el script no funciona con netscape 6.1
osea dice Version: Nan
se podra fixear?

saluditosh!!
__________________
On error no hago nada porque deje de fumar...
  #20 (permalink)  
Antiguo 05/05/2012, 05:56
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Detección de browsers

Hola a todos.

Aunque el tema ya he visto que es antiguo, aquí os dejo una función autoejecutada para que la podais incluir en vuestros script. Genera propiedades nuevas en el objeto window (variables globales, vamos) para saber navegador, versión, compatibilidad con mozilla y motor de rendeo. La he probado con IE, Firefox, Chrome, Opera y Safari

Supongo que sobre la misma idea y con expresiones regulares se podría reducir mucho el código... pero no son mi fuerte, la verdad :)

Espero que os sirva


Código Javascript:
Ver original
  1. //Definimos las caracteresiticas del navegador
  2. (function(){
  3.     var idx, i;
  4.     var navigators=['msie', 'firefox', 'chrome', 'safari', 'opera'];
  5.     var renderingEngines=['trident', 'applewebkit', 'khtml', 'gecko', 'presto'];
  6.     var str=navigator.userAgent.toLowerCase();
  7.  
  8.     //Inicializamos las propiedades en window
  9.     window.navigatorApplication='unknow';
  10.     window.navigatorVersion=0;
  11.     window.navigatorMozilla=0;
  12.     window.navigatorRE='unknow';
  13.     window.navigatorREVersion='';
  14.  
  15.     //Miramos el navegador
  16.     for (i=0; i<navigators.length; i++){
  17.         idx=str.indexOf(navigators[i]);
  18.         if (idx!=-1){
  19.             window.navigatorApplication=navigators[i];
  20.             //Nos buscamos la versión
  21.             window.navigatorVersion=parseFloat(str.substr(idx + navigators[i].length + 1));
  22.             break;
  23.         };
  24.     };
  25.    
  26.     //Miramos si es compatible mozilla
  27.     idx=str.indexOf('mozilla');
  28.     if (idx!=-1) window.navigatorMozilla=parseFloat(str.substr(idx+8));
  29.    
  30.     //Nos buscamos los motores de render
  31.     for (i=0; i<renderingEngines.length; i++){
  32.         idx=str.indexOf(renderingEngines[i]);
  33.         if (idx!=-1){
  34.             window.navigatorRE=renderingEngines[i];
  35.             //Nos buscamos la versión
  36.             str=str.substr(idx + renderingEngines[i].length + 1);
  37.             idx=str.search(/[;\s]/);
  38.             window.navigatorREVersion=str.substr(0, idx);
  39.             break;
  40.         };
  41.     };
  42. })()
  43.  
  44. alert('Navegador:' + navigatorApplication + ' versión:' + navigatorVersion +
  45.     '\nCompatible con Mozilla versión:' + window.navigatorMozilla + '\nMotor de render:' + window.navigatorRE + ' (' + window.navigatorREVersion + ')');

Última edición por aznanpasogui; 05/05/2012 a las 06:04
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.
Tema Cerrado

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 20:24.