Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 15 Junio 2019, 23:15 pm



Título: [Pregunta]: Detectar cuando javascript esta desactivado en mi WEB
Publicado por: Leguim en 15 Junio 2019, 23:15 pm
Basicamente estuve buscando información sobre como podría saber si javascript esta desactivado en mi aplicación web, pero la información que recibo es algo variada y no se cual podría ser la indicada.

Es decir si un usuario desactiva javascript en mi web esta muestre algun mensaje diciendo "se necesita javascript activado para poder funcionar" .

Una de las posibles soluciones sería usar <noscript></noscript> (según lo que encontré) pero se me hace demasiado sencilla y no se cual es la forma mas eficaz o recomendada para poder hacerlo. Muchas gracias desde ya!!!


Título: Re: [Pregunta]: Detectar cuando javascript esta desactivado en mi WEB
Publicado por: #!drvy en 15 Junio 2019, 23:28 pm
La única forma recomendada es <noscript>. Puedes hacer tambien chorradas como meter un texto y ocultarlo con javascript (así solo lo ocultas cuando no hay javascript) pero vamos, es una chorrada teniendo explicitamente una etiqueta con precisamente la funcionalidad que buscas.


Saludos


Título: Re: [Pregunta]: Detectar cuando javascript esta desactivado en mi WEB
Publicado por: Leguim en 15 Junio 2019, 23:53 pm
Gracias amigo!


Título: Re: [Pregunta]: Detectar cuando javascript esta desactivado en mi WEB
Publicado por: @XSStringManolo en 16 Junio 2019, 01:21 am
 A la etiqueta <noscript> se la come el add-on del navegador llamado precisamente NoScript. Es bastante utilizado. Por ejemplo en el nuevo navegador de Tor (Tor Browser) para Android te viene por defecto y mucha gente se descarga y usa NoScript y similares.
Con otros parecidos pasa lo mismo o como el navegador tiene activado el javascript, no ejecuta el contenido entre las etiquetas <noscript> pero la extensión elimina el javascript no lo desactiva del navegador, entonces no se ejecuta lo que hay dentro de las etiquetas porque javascript está activo en el navegador pero capado.

 Cada extension funciona de una manera y no puedes preveer lo que va a pasar.
La alternativa que encontré es usar una funcion display :none para cargar una web distinta dentro del propio javascript y el propio html ser un aviso de javascript disabled.

Al hacer esto, cuando el javascript se ejecuta de verdad oculta el mensaje del html avisando del error. Y cuando no se carga el javascript como no se ejecuta el display :none al ser este un script, se mostrará el html en el cual tienes el mensaje de error y el resto de la página hecha específicamente para trabajar sin javascript.

También lo puedes hacer con un contenedor y metes dentro el mensaje y el resto de la web en html. Como creo que te estoy liando mucho la cabeza con rollos teóricos que en la práctica es sencillo de implementar te pongo un ejemplo práctico:
Código
  1. window.onload = function (){
  2. document.getElementById("javascriptDesactivado").style.display = "none";
  3. }
  4. <div id="javascriptDesactivado">
  5. Para más funcionalidades activa javascript y recarga la página.
  6. Resto de la página en html sin javascript.
  7. </div>
  8.