opciones para comprobar la version del navegador
Al rebufo de nuestro anterior post, en el que hablábamos de diferentes opciones para comprobar la visualización final de nuestro proyecto web en el niño rarito de la clase Internet Explorer, me he decidido a hacer otro pequeño post donde hablaros un poco de todo este tema que tiene que ver con la visualización de contenidos; concretamente con comprobar la version del navegador.
En próximos post ya ahondaré en las oscuras aguas de «por qué alguien querría usar contenido dependiendo del navegador», pero de momento vamos a lo práctico.
Yo os cuento todas las opciones que conozco para hacerlo, y ya según cada caso podréis aplicar el que más os convenga. Bueno, o podéis usarlo todo, a fin de cuentas esto es como los Pokemon, que a uno le gusta coleccionar «todo» de algo.
Comentarios condicionales
Si nos encontramos en la triste pero normal situación en que nuestros usuarios acceden desde diferentes tipos de navegadores, una de las opciones que más pueden convenirnos es el uso de los (tachán tachán) comentarios condicionales. Los introdujo microsoft en la versión 5 de su castaña internet explorer con la sana intención de mostrar u ocultar trozos de código, scripts, applets o el scooter del vecino.
La sintaxis es bastante sencilla, usa los operadores lógicos al uso tal y como podéis ver en la tabla que he racaneado de por las wikipedias:
Y con esto mas o menos podemos reapañar todas las situaciones en las que la discriminación está entre «es o no IE», o «es tal o cual versión de IE». Por lo que, hay otras circunstancias en las que no nos será suficiente. Por ejemplo, si tenemos que valorar entre varios navegadores al mismo tiempo. ¿Qué hacer entonces? Pues depende. Si lo que necesitamos es mostrar un mensajito y poco más, nos bastará con hacer un apaño a través de css, tal como os cuento a continuación:
@-moz-document url-prefix(){
#mensajito{ display: block; }
}
Aquí especificamos que, si el explorador es mozilla, entonces nos muestre el #mensajito (Que presuponemos que está previamente en display:none).
Pero el zorrito no es el único chico aplicado de la clase (Para fortuna nuestra), sino que de hecho hay otros cuantos navegadores que demuestran tener estudios a base de webkits:
@media screen and(-webkit-min-device-pixel-ratio:0{
#mensajito{ display: block; }
}
@media all and (-webkit-min-device-pixel-ratio:10000), not all and (-webkit-min-device-pixel-ratio:0){
#mensajito{ display: block; }
}
El primero, para chrome, safari y derivados. El segundo, para opera.
Si sólo mostramos nuestro mensajito, hasta aquí habrá bastado. Pero muchas veces, necesitaremos hacer algo más. Y en esos casos, tenemos que tirar de otras opciones.
Detectar el navegador con javascript
Tal como podéis leer en esta fuente, hay una manera bastante práctica que es mediante el uso del objeto navigator. Detectándolo, ya podemos hacer todas las manipulaciones que creamos oportunas. Ejemplo literal:
Detectar el navegador con php
Nuestro bienamado php tiene un utilísimo recurso que son las variables globales. Para nuestra tarea actual tenemos una muy muy concreta llamada $_SERVER[«http_user_agent»]. Una prueba de lo mas tontaca pasa por imprimir su contenido con un echo.
Con un poco de tiempo y ganas podemos hacer maravillas, tal y como podéis ver en este otro post, en el que ahondan en el uso de varias funciones específicas para tratar de hacer algo semejante a lo que andamos buscando en php.