Contenido

No detectes el navegador, detecta las funcionalidades

1 Feb

+ 8

Antes de comenzar a explicarme, he de decir que no siempre se cumplen todas las premisas para poder hacer las cosas como toca, a veces, el tiempo, las presión o simplemente el desconocimiento nos obliga a usar técnicas que funcionan, pero que podrían ser mejorables.

Detección del navegador

Hace unos días vimos unas opciones para detectar el navegador de nuestros usuarios mediante unas mínimas expresiones que se aprovechan de peculiaridades de cada navegador. Estas opciones son interesantes conocerlas para tenerlas a mano por lo que comentábamos al principio del post, pero debemos evitarlas siempre que podamos.

var isIE = '\v' == 'v';
if (isIE){
	// Código IE
} else {
	// Código alternativo
}

¿por que?

Principalmente por que no debemos olvidarnos de que tenemos que seguir el espíritu de los estándares web, no desarrollar para cada dispositivo sino un código para todos.

Detección de objetos (funcionalidades)

Aquí es donde tenemos que apostar fuerte, nuestros scripts pueden ser más potentes y compactos si logramos comprobar las funcionalidades disponibles antes de usarlas y apartir de ahí condicionar el script. Al igual que vimos en aquellos scrips que se autoprogramaban.

¿por que?

Por que se cambia el chip a la hora de programar, y se piensa en las funcionalidades y no en el navegador. Algo que ayuda a la creación y comprensión del código.

function getClassName(klass){
	if (document.getElementsByClassName) {
		return document.getElementsByClassName(klass);
	} else {
		// código alternativo.
	}
}

Conclusiones

Si usamos este sistema, nuestros scripts no deberían devolver nunca ningún error, en cambio usando el sistema de detección del navegador podemos encontrar con versiones del mismo que dispongan de funcionalidades diferentes.

¿Y tu? ¿Como programas tus scripts?

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.