Enviar al navegador a otra página si no tiene Javascript

  • Por
Una técnica por la que podemos dirigir al navegador a otra página en el caso de que no soporte scripts en Javascript.
Imaginemos una página que, para verse bien, necesite tener habilitada la posibilidad de ejecutar scripts en Javascript y que, si no tiene habilitado Javascript, no funcionase bien y no podiese mostrar todos los contenidos.

En un caso como este nos sería muy útil disponer de una función que detecte si está habilitado o no Javascript para, en caso de que no sea así, se envíe al navegador a otra dirección.

Pues bien, esa función que detecta si está o no habilitado Javascript no se puede hacer tan ricamente, por lo menos utilizando Javascript. Imagina que no dispones de Javascript, el navegador no podría entonces ejecutar esa función y nunca detectarías que no hay Javascript.

Por suerte tenemos un enunciado <NOSCRIPT></NOSCRIPT> que nos sirve para indicar acciones a tomar en caso de que no esté habilitado Javascript.

Utilizando esa etiqueta podemos poner un enlace para que se vea sólo en los navegadores que no tienen Javascript:

<NOSCRIPT>
Tu navegador no soporta Javascript. <a href="no_javas.html">Entra en una página que no lo utiliza</a>
</NOSCRIPT>

Podemos ir un paso más allá y utilizar la etiqueta META tipo "Refresh" para que el navegador se refresque automáticamente y se dirija a otra página que no incluya programación en Javascript.

Es una opción mucho más interesante, porque no tenemos que esperar a que el visitante pulse un enlace y así nos aseguramos que, aunque no encontrase el enlace, el navegador lo redirija correctamente.

<NOSCRIPT>
<META HTTP-EQUIV="Refresh" CONTENT="3;URL=no_javas.html">
</NOSCRIPT>

Obviamente, esto sólo funcionará si nuestro navegador acepta este tipo de etiquetas de refresco automático, aunque los navegadores más habituales sí las aceptan.

Por cierto, la etiqueta de refresco debe colocarse en la cabecera (Dentro de <HEAD></HEAD>). El primer dato del valor de refresco es el tiempo de espera antes de refrescarse en segundos, en este caso 3 segundos. El segundo dato es la dirección a la que queremos enviar el navegador, en este caso no_javascript.html.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

BEN

21/7/2004
no funciona

Christopher C

20/4/2006
Debe tenerse en cuenta que si se desea respetar el estandar XHTML 1.0, en primer lugar debe escribirse en minuscula cualquier metatag y que utilizando esta forma (refresh), por ejemplo:

<noscript>
<meta http-equiv="refresh" content="0;URL=formulario02.html" />
</noscript>

No pasa el estandar pues <noscript> no es un tag válido para la cabecera (<head>).

Otro contra, es que esta forma inhibe la navegación del usuario pues el botón "back" pierde su funcionalidad.

Christopher C.
http://www.multimedia.co.cr

Damian

17/6/2009
Otra forma
A mí me funciona usar el método javaEnabled() del objeto navigator de Javascript.
Ese método devuelve true o false.
Ejemplo en el que se muestra un alerta:
<script type="text/javascript">
if(!navigator.javaEnabled())
{
alert('Por favor, habilita tu javascript');
}
</script>
Sorprendentemente, el alert funciona cuando antes se invocó el javaEnabled!!!

Igualmente, se podría redirigir al navegante a una página de error usando el objeto location.
Ejemplo:
<script type="text/javascript">
if(!navigator.javaEnabled())
{
window.location.href='pagina_error.html';
}
</script>

Ojo, no funciona en todos los navegadores.

Nery_Nicolas

25/2/2011
Más simple no?
Es una ocurrencia mía...pero, solo incluyendo la META para refrescar/redireccionar la página sin utilizar NOSCRIPT en la cabecera y mantenerla deshabilitada con JAVASCRIPT...entonces, si el navegador tiene deshabilitado JAVASCRIPT simplemente se pone en funcionamiento la META. En caso contrario JAVASCRIPT desactiva la bomba jajaja!!!