Un objeto navegador
Un script que permite obtneer información sobre el modelo de navegador utilizado por el usuario de nuestras páginas.
Permite conocer el nombre, versión y el idioma del navegador.
Solución
<script>
function oNavegador() {
this.nombre = function(){
var navs = ["Firefox","Chrome","Safari","Edge","Opera"];
var regex, brw, i=0;
while ( i< navs.length){
regex = new RegExp(navs[i],"i");
if (regex.test(navigator.userAgent)) {
brw = navs[i];
i = navs.length;
}
i++
}
return brw;
}
this.version = function(){
var regex = new RegExp(this.nombre()+"\\/([\\d\\.]+)\\s","i");
var ver = regex.exec(navigator.userAgent);
return ver[1];
}
this.idioma = navigator.language;
}
</script>
<body>
Contenido de la página
<di id = "info"></div>
<script>
let visita = new oNavegador();
let ventInfo = document.getElementById('info');
let txt='';
txt = "Navegador: "+visita.nombre()+"<br>";
txt += " Versión: "+visita.version()+"<br>";
txt += " Cod Idioma: "+visita.idioma+"<br>";
ventInfo.innerHTML = txt;
</script>
</body>
Explicación
Este script lee la información para identificar el navegador usado por el visitante.
Lo interesante del script es la creación de objetos y el uso e las expresinoes regulares.
Se define un objeto, oNavegador, con una propiedad y dos métodos:
idioma es una propiedad que contiene el código e idioma usado.
version(): es un método que lee la versión del navegador
nombre: un método para leer el nombre del navegador
Para detectar el nombre del navegador usa una lista con nombres de navegadores y para cada item de la lista comprueba si el nombre se encuentra en navigator.userAgent . Chrome debe ir antes que Safari, pues en el navegador de Google aparecen ambos nombres.
Para la versión se usa otra expresión regular que busca una cadena de números y puntos que sigue al nombre del navegador, separado por una barra inclinada.
Como lo uso
En general y dado el alto grado de estandarización de Javascript, la detección del navegador no es imprescindible.
En general se suele comprobar si el navegador usado dispone de la función o característica de Javascript que pudiera dar problemas de versión.
Este ejemplo es útil para fines de aprendizaje.