Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Detección de navegador


Un breve ejemplo sobre cómo detectar el navegador del usuario.


01/1/70 - En algunas ocasiones es necesario detectar el navegador del usuario y su versión para mostrar un contenido distinto en cada caso. Por ejemplo podremos mostrar un script en Javascript distinto dependiendo del navegador o un banner distinto. Un detalle importante es que no debemos construir páginas distintas para cada navegador, debemos intentar que las páginas sean compatibles y en algunas ocasiones este método nos puede ser útil.

Para detectarlo disponemos de la colección ServerVariables y en concreto la variable HTTP_USER_AGENT nos dará la información que queremos. Para empezar podemos empezar por visualizar el contenido de esa variable

<% Response.write Request.ServerVariables("HTTP_USER_AGENT") %>

Puedes ver el contenido de tu tag HTTP_USER_AGENT aquí.

Este tag tiene toda la información que puedas necesitar, pero probablemente sea un problema rescatar los datos de ese texto para enterarse de todos los detalles que necesitas. Un ejemplo para tratar la cadena puede ser el siguiente.

Vamos a hacer uso de alguna función de cadena. En concreto vamos a utilizar la función inStr, que sirve para encontrar un substring dentro de otra cadena de caracteres.

InStr([start, ]string1, string2[, comparación])

Inicio, es opcional e indica la posición inicial a partir de la cuál buscar
String1, es la cadena donde realizamos la búisqueda
String2, es la cadena que estamos buscando
Comparación, opcional, indica si se realiza una comparación binaria (valor 0, por defecto) o textual (valor 1)

InStr devuelve 0 si no encuentra el string y si lo encuentra devuelve la posición del primer caracter.

<%
nav = Request.ServerVariables("HTTP_USER_AGENT")
if instr(nav,"MSIE") then
   response.write "Tu navegador es Internet Explorer"
elseif instr(nav,"Mozilla") then
   response.write "Tu navegador probablemente sea de Netscape"
else
   response.write "Tu navegador no es Netscape ni Explorer"
end if
%>


Puedes ver el resultado de este script en tu navegador. Utilizamos la salida de la función InStr como expresión a evaluar en el IF. Si InStr no encontró nada devolverá un cero, que será interpretado como un false. Si encontró la cadena devolverá la posición del primer carácter, que será distinta de cero y será interpretada como true.

No podemos estar seguros de que el navegador sea Netscape porque no indica claramente en su tag HTTP_USER_AGENT la marca del navegador.

Ponemos un caso en el que no sabemos qué navegador es, o más bien, en el que estamos convencidos que no es ni Explorer ni Netscape. Serán pocos los casos en los que no se pueda detectar. En estos caso estamos casi seguros de que el navegador será antiguo y debemos hacer acciones básicas que sean compatibles con los navegadores menos avanzados.

Browser Capabilites

Pero esta no es la única forma de detectar el navegador. Existe un interesante objeto que nos puede devolver los datos que andamos buscando de una manera más ordenada. Se trata del componente Browser Capabilites. Que se usa de la siguiente manera.

<html>
<head>
   <title>Browser Capabilities</title>
</head>
<body>

<%
Set nav = Server.CreateObject("MSWC.BrowserType")
%>
Navegador: <%=nav.browser %>
<br><br>
Versión: <%=nav.version%>
<br><br>

<%
if (nav.vbscript = TRUE) then
%>
   Puedes ejecutar VBScript
<% else %>
   NO puedes ejecutar VBScript
<% end if %>

<br><br>

<% if (nav.javascript = TRUE) then %>
   Puedes ejecutar Javascript
<% else %>
   NO puedes ejecutar Javascript
<%
end if
set bc=nothing
%>

</body>
</html>


Podemos ver en marcha este ejemplo en la siguiente página, pero probablemente nos demos una desilusión porque en determinados navegadores no se detecta correctamente los valores. Esto es debido a que nuestro servidor web tiene poco actualizado el archivo browscap.ini.

La responsabilidad de que el archivo no esté bien actualizado es de nuestro proveedor de hosting, pero si en algún caso queremos actualizar el archivo lo podemos hacer. Para conseguir una versión actualizada podemos visitar la página www.cyscape.com/browscap donde se puede descargar el archivo.

Si tenemos un proveedor de hosting debería brindarse a actualizar el archivo, si tenemos nuestro propio servidor podremos actualizarlo nosotros mismos sobreescribiendo nuestro browscap.ini actual, que en nuestro sistema está en el directorio c:\windows\system\inetsrv.

Este método es interesante, pero según nuestra experiencia no es suficiente para asegurar que todos los navegadores se detectan correctamente. Una última posibilidad es comprar un componente comercial, como el que venden en la misma página donde podemos descargar browscap.ini, que informan que tiene mayores posibilidades para detectar navegadores, plug-ins, definición de pantalla... El problema es que cuesta bastante dinero. www.cyscape.com.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 2 categorias relacionadas
+ 1 comentario (Añadir)
+ 1 comentario no revisado

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de ASP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en ASP
+ Entrar en Manuales de ASP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestra un comentario revisado

 Comentario de gsus
19/11/02 
Ciertamente hay errores a la hora de averiguar el tipo de navegador que se esta utilizando.. por que? muy facil.

Request.ServerVariables("HTTP_USER_AGENT") indica el navegador del usuario.

El tuyo es el siguiente:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

MI navegador es internet explorer 6... y lo anterior es lo que devuelve ("HTTP_USER_AGENT") , por lo tanto no es valido preguntar por mozilla... para indicar que el usuario utiliza nescape,, debido probablemente a que ie6 .. funcione sobre el codigo comercializado por nestcape a microsoft..

/*
Esto es lo que me devuelve su scritp.. utilizando Server.CreateObject("MSWC.BrowserType") :

Navegador: Netscape

Versión: 4.00

NO puedes ejecutar VBScript

Puedes ejecutar Javascript
*/

y nada mas lejos de la realidad.....

RESPUESTA

Muchas gracias por tu comentario. Tienes razón, pero el problema no es de nuestro artículo sino de lo que devueve el componente Browser Capabilities que es casi todo mentira. Además, nosotros avisamos en el texto sobre este problema.


Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de ASP
Categorías
+Scripts en ASP
+Manuales de ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia