2010-09-17 23 views

Respuesta

12

En realidad, existe una etiqueta <noscript> que puede usar para mostrar el contenido que contiene cuando javascript no está disponible.

Algo así como:

<noscript> 
    <div> 
     You must enable javascript to continue. 
    </div> 
</noscript> 

El div simplemente no se mostrará si tienen Javascript, y es bastante fácil de saber si javascript está trabajando, no importa si usted lo necesita para hacer ping a su servidor de atrás para dejar lo sabe, o lo usa para realizar algunas funciones más avanzadas.

13

Ponga el mensaje en un <div> que está envuelto en una etiqueta <noscript>. Si JavaScript está deshabilitado, el <div> se representará como parte del DOM; si el script está habilitado, el div no estará en el DOM.

Por ejemplo, puede poner lo siguiente inmediatamente después de la etiqueta de apertura <body>, y estilo a través de CSS para tener un fondo rojo para hacerlo más prominente.

<noscript> 
    <div id="js-warning"> 
     To be able to access all of our features, you need a browser that supports JavaScript, and it needs to be enabled. 
    </div> 
</noscript> 
2

Un navegador puede ser "compatible con JavaScript", pero eso no significa que JavaScript no haya sido desactivado por el usuario o por un administrador. No hay una manera real de determinar esto. Las mejores prácticas dictan "Mejora progresiva"; es decir, su aplicación necesita funcionar primero sin JavaScript, luego agregue la funcionalidad de JavaScript para aquellos (la mayoría) que la tienen habilitada.

http://www.alistapart.com/articles/progressiveenhancementwithjavascript/

http://www.webcredible.co.uk/user-friendly-resources/dom-scripting/progressive-enhancement.shtml

evitar soluciones hacky a esto y tener en cuenta que también hay problemas de accesibilidad para las personas con lectores de pantalla. <noscript> contenido solo se muestra si JavaScript está deshabilitado. La mayoría de los usuarios de lectores de pantalla tienen habilitado JavaScript, por lo que verán su script inaccesible en lugar del contenido <noscript>.

4

"Mostrar un mensaje de alerta si está desactivado" es paradójico, ya que si está desactivado, no puede "hacer" nada programáticamente.

Puede hacerlo de la otra forma redonda, sin embargo: hacer que el mensaje aparecerá por defecto, y tener JavaScript ocultarlo si está activada (por ejemplo, mediante el establecimiento de una visibilidad DIVs a escondidas),

o confíe en el cumplimiento estándar del navegador y use la etiqueta <noscript>. Se muestra material dentro del <noscript> si no hay javascript habilitado. Por cierto, asegúrese de establecer el atributo type = "text/javascript" de la etiqueta del script.

Véase también http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.3

+1

1 para mejor respuesta y el enlace :-) – IrishChieftain

Cuestiones relacionadas