Detectar el navegador de los visitantes

En principio, detectar el navegador que utiliza un visitante es sencillo si se usa JavaScript; por lo general, cualquier ejemplo que vemos en la web se limita a determinar si se una Internet Explorer o no y para eso, basta que verifiquemos un dato llamado navigator.appName por ejemplo, algo así:
<script>
var NAV = navigator.appName;
if (NAV=="Microsoft Internet Explorer") {
... está usando Internet Explorer y hacemos algo ...
} else {
... está usando cualquier otro navegador ...
}
</script>

¿Que hacer con eso? Dependerá de cada uno. Como esta entrada tiene como fin tratar de responder la pregunta de Lagarto y su intención es detectar el navegador de nuestros lectores y si usan IE sugerirles que usen otros; ese tipo de script sería suficiente

¿Cómo mostrarlo? hay muchas formas y lo más sencillo, sería colocarlo en un elemento HTML; por ejemplo:
<script>
if (navigator.appName=="Microsoft Internet Explorer") {
document.write("Estás usando Internet Explorer blabla blabla un texto cualquiera")
}
</script>
Pero, ese no es el único dato accesible, el objeto navigator tiene muchas más propiedades y eso que, en algún tiempo fue suficiente, hoy ya no lo es así que si queremos detectar el navegador correctamente, hay otros datos que deberíamos leer; por ejemplo:

navigator.appCodeName nos devuelve el nombre real:


navigator.appVersion la versión:


y sobre todo, navigator.userAgent que nos devuelve un texto bastante largo con la información completa:


Es esta última la que permite el control más riguroso pero es muy larga así que simplemente, vamos a verificar si dentro de ella hay algún texto específico; podemos buscar:

MSIE para detectar Internet Explroer
Firefox para detectar Firefox
Chrome para detectar Google Chrome
Opera para detectar Opera

y así seguimos, incluso, podemos detectar móviles como iPhone o Android.

La estructura elemental podría ser algo así:
<script>
var navegador = navigator.userAgent;
if (navigator.userAgent.indexOf('MSIE') !=-1) {
document.write('está usando Internet Explorer ...');
} else if (navigator.userAgent.indexOf('Firefox') !=-1) {
document.write('está usando Firefox ...');
} else if (navigator.userAgent.indexOf('Chrome') !=-1) {
document.write('está usando Google Chrome ...');
} else if (navigator.userAgent.indexOf('Opera') !=-1) {
document.write('está usando Opera ...');
} else {
document.write('está usando un navegador no identificado ...');
}
</script>

Llegado el caso, si lo que nos interesa es detectar sólo un navegador como Internet Explorer, también podemos hacerlo con CSS tal como se muestra en una vieja entrada aunque ese método no funcionará en Opera.

0 comentarios:

Publicar un comentario