Posts tagged as ‘javascript’

Evitar problemas cuando Javascript no está habilitado en el navegador

Escrito en Tutoriales

Cuando una página de nuestra web necesita obligatoriamente tener javascript habilitado en el navegador para poder mostrarse correctamente, pero no queremos que los usuarios que no lo tengan habilitado accedan automáticamente a otra página para que pueda llevar a cabo la tarea que quería utilizar, tenemos que idear un método que detecte si javascript está habilitado y, en caso negativo, redireccionar a otra página.

Este problema lo tuvimos en la pantalla de sorteos simples, queríamos que los usuarios sin javascript pudieran explotar todas las posibilidades de nuestro sistema para sortear. Para ello, creamos una página alternativa a esta, la de sorteos simples sin javascript. Como vemos, visualmente es practicamente idéntica, pero a la hora de darle al botón de ¡sortear! el resultado necesita que la página se actualice.

Bien, ya teníamos las dos páginas, pero ¿cómo hacer que la gente que no tenga javascript sepa facilmente que hay otra página que hace exactamente lo mismo y que sí le funciona?. La solución que pensamos que era la más fácil era usando la clásica etiqueta de <noscript></noscript>. Esta etiqueta lo que hace es ejecutar lo que haya dentro en el caso de no tener javascript. Entonces lo que había que hacer era que lo que hubiera dentro fuera una instrucción que redireccionara la página a otra.

La instrucción es una etiqueta meta, la siguiente:

<NOSCRIPT>
<META HTTP-EQUIV=’Refresh’ CONTENT=’0;URL=$parametro’>
</NOSCRIPT>

Más tarde veremos por qué en el atributo URL ponemos una variable de javascript, pero si unicamente necesitas redireccionar una página, puedes poner directamente la página a la que quieres que se redireccione.

Con este código ya podría funcionar todo correctamente, aunque nosotros tuvimos que ir más allá, porque hicimos una función que, entre otras cosas, miraba que página quería ser redireccionada y la redireccionaba donde debía.

Un fragmento de la función sería este:

$paginanojs = array(1 => “sorteos-simples”, 2 => “sorteos”, 3 => “registro”, 4 => “login”);

for ($i = 1 ; $i <= count($paginanojs) ; $i++)
{
if ($noscript == $paginanojs[$i])
{
if ($noscript == "sorteos-simples")
$parametro = "../sorteosnoscript";
elseif ($noscript == "sorteos")
$parametro = "../nojs?pag=sorteos_av";
else
$parametro = "../nojs?pag=".$paginanojs[$i];

echo"<NOSCRIPT>".
"<META HTTP-EQUIV=’Refresh’ CONTENT=’0;URL=$parametro’>".
"</NOSCRIPT>;

$noscript = 0;
break;
}
}

A esta función se la llama con el parámetro $noscript, y ya hace lo que predeterminadamente hemos programado.

En nuestro caso, necesitábamos que las páginas de registro, de login y de sorteos avanzados fueran a una página auxiliar, porque no habíamos creado ninguna página que hiciera su misma función pero sin javascript, en estas páginas lo que se hace es informar al usuario de que no puede utilizar esas funciones. Puede que en el futuro habilitemos estas páginas para este tipo de usuarios.


Etiquetas: , ,
Escrito por .