2010-01-19 13 views
8

¿Cómo comprobar si el usuario deshabilitó javascript en su navegador? Por ejemplo: el sitio stackoverflow muestra un div rojo de advertencia en la parte superior si desactiva el javascript en firefox? ¿Cómo lograr esto?¿Cómo comprobar si javascript está deshabilitado?

Una cosa más que noté: si desactiva las cookies, stackoverflow no funciona. No le permitirá iniciar sesión cuando haga clic en el botón de inicio de sesión. En realidad, eso es lo que asumo con mi sitio web, los datos de usuario/sesión dependen de las cookies, el diseño de la interfaz de usuario, etc. depende de javascript.

Aquí no quiero hablar sobre el principio de diseño (mejora progresiva, etc.), ¿podría alguien decirme una buena forma de comprobar si las cookies, javascript están habilitados o no? Creo que tiene que hacerse en el lado del servidor, ¿verdad?

Gracias

Respuesta

18

Añadir una etiqueta <noscript> a la página, y si JavaScript está desactivado, el mensaje mostrará al usuario.

También puede detectar si JavaScript está activado basado en el éxito de la ejecución de código JavaScript

  • añadir un campo oculto y establezca su valor por defecto a false
  • Ejecutar código javascript que establece el valor de true
  • Cuando publique nuevamente, verifique el valor.

Para verificar las cookies, configure una cookie e intente leerlas. Si tiene éxito, entonces las cookies están habilitadas.

+0

Para ser más específicos, utilice

+0

Solo tenga en cuenta que la representación de 'noscript' solo ocurre cuando el navegador no admite JavaScript si el usuario lo ha deshabilitado. No se representará si un error de JavaScript hace que se detenga la ejecución de JS. –

3
<!-- gatewayPage.php --> 
<noscript> 
    <div style="background-color:red;font-size:14pt;"> 
     This site will be very boring unless you enable Javascript! 
    </div> 
    <!-- if you're convinced that bots won't follow your redirect, add this: --> 
    Proceed to <a href="myRealHomePage.php">MySite</a> anyway 
</noscript> 
<script> 
    documment.location = "myRealHomePage.php"; 
</script> 
+0

Solo espero que la araña de búsqueda siga los redireccionamientos de JavaScript. – epascarello

+0

esto es malo para SEO, ya que los rastreadores de los motores de búsqueda no pueden seguir los redireccionamientos de JavaScript. –

+0

Tal vez alguna vez, pero googlebot definitivamente sigue al mío. – egrunin

Cuestiones relacionadas