Introducción al JavaScript (4)

Las condiciones se basan en el álgebra de Boole. Esto es, en última instancia, la obtención de una respuesta binaria: verdadero o falso. Esta respuesta puede ser el resultado de una comparación o de la operación entra varias comparaciones.

Supongamos la variabla a con el valor 3...

a == 1
a != 1
a > 1
a < 1

NOTA: ¿Cómo se evalúan estos casos? La respuesta es falso, verdadero, verdadero, falso.


¿Y para que vale eso? Pues haciendo las preguntas concretas podemos obtener resultados interesantes.

Detectar el navegador

Pues resulta que en navigator.userAgent tenemos una cadena de texto que identifica el navegador.

alert(navigator.userAgent);

Luego tenemos la opción de poner esa cadena en minúsculas.

alert(navigator.userAgent.toLowerCase());

Y, si le preguntamos a esa cadena ¿en que posición pone "cacatúa"? de este modo...

alert(navigator.userAgent.toLowerCase().indexOf("cacatúa"));

El resultado será el número del carácter donde empieza a poner "cacatúa" o -1 si no existe ese elemento en nuestra cadena.

Condiciones

El tema es que sabemos que la cadena que hemos visto tiene que ser safari, chrome, firefox o msie... Podemos preguntar. La pregunta es si el resultado de la última instancia que hemos puesto es mayor que -1. Si es así, tenemos ese navegador, si no... pues tendremos otro.

Es decir...

if (navigator.userAgent.toLowerCase().indexOf("safari")> -1) document.write("Safari...");

if (navigator.userAgent.toLowerCase().indexOf("chrome")> -1) document.write("Chrome...");

if (navigator.userAgent.toLowerCase().indexOf("firefox")> -1) document.write("Firefox...");

if (navigator.userAgent.toLowerCase().indexOf("msie")> -1) document.write("Vade retro...");


NOTA: El cuadro tendría que mostrar el resultado del código anterior... Al menos a mi me sale "Safari..."

Hay formas más útiles de resolver condiciones múltiples... pero de momento nos sobra con esto. El tema es que si detectamos el tipo de navegador, podemos decidir en tiempo de representación qué archivo de CSS cargar en función del navegador.


NOTA: Si, lo se... hay otras formas... pero si realmente está pensando en eso es que estos tutoriales no son para ti...

Por cierto, antes de que se me olvide. Tras resolver una condición podemos hacer más de una cosa, poniéndolas entre {}

if (navigator.userAgent.toLowerCase().indexOf("msie")> -1)
{
document.write("D'Oh!");
alert("Perotuestassegurodeloqueestáshaciendocontuvidavayahombrepordios!!!");
}


NOTA: Lo del Internet Explorer me viene de la versión 6... si eres usuario del mismo, no te lo tomes como algo personal.


Además, podemos hacer otra cosa... es sacar una información si se cumple la condición y otra si no se cumple.


if (edad<=18)
{
document.write("Puedes pasar...");
}
else
{
document.write("NO puedes pasar...");
}


Comments