Pregunta

Supongo que no puedes usar un fragmento de código JavaScript para validar si el usuario del navegador ha desactivado JavaScript.Entonces, ¿qué puedo usar en su lugar?¿Alguien puede ofrecer un ejemplo de código?

Estoy buscando envolverlo con una declaración si/entonces.

A menudo codifico en CFML, si eso ayuda.

¿Fue útil?

Solución 4

¿Estamos hablando de algo como esto?

JavaScript:

<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
<noscript>Your browser does not support JavaScript!</noscript>
...
...
</body>

Otros consejos

Este es un truco total, pero podrías usar un iframe dentro de la etiqueta noscript para activar un HTTP GET en una URL para decirle al servidor que un usuario no tiene JavaScript habilitado.

<body>
...
...
<noscript>
    <iframe src ="/nojs.aspx?SOMEIDENTIFIER=XXXX&NOJS=TRUE" style="display: none;">
    </iframe>
</noscript>
...
...
</body>

Utilice las etiquetas HTML <noscript>.

No estoy seguro de lo que está intentando hacer, pero si solo necesita informar al usuario que se requiere Javascript, puede usar la etiqueta '<noscript>'.Si necesita saberlo en el servidor, puede realizar una solicitud de estilo Ajax al servidor desde javascript.Si recibe la solicitud, JavaScript está funcionando; de lo contrario, no.

Pide una verificación para ver si javascript está habilitado.Solo puedo pensar en hacer exactamente lo que dijo el OP: intente usar algo de Javascript con un intervalo para enviar una devolución de llamada si JS está activado; desafortunadamente, no creo que pueda verificar en el lado del servidor si JS está habilitado, por eso usa etiquetas. que renderizar contenido diferente desde el servidor.

Si utiliza JavaScript discreto entonces no es necesario comprobar si el usuario tiene JavaScript habilitado.

Si tienen JavaScript habilitado, obtendrán el efecto completo, pero si no lo tienen, los usuarios aún podrán usar su sitio.Y además de ser mejor en cuanto a accesibilidad, es posible que este enfoque mejore su SEO.

<noscript>
    ...some non-js code
</noscript>

Sí, ese fragmento de NoScript es correcto.

Es posible que JavaScript ejecute alguna consulta AJAX y verifique si es así.Aquellos que descargan la página y no ejecutan la consulta tienen JS deshabilitado o son robots.

Realmente lo único que puedes hacer es poner algún mensaje en las etiquetas.Me parece recordar haber probado esto en ASP.NET en algún lugar, pero en realidad sólo se puede saber si el navegador admite Javascript, no si realmente está permitido/habilitado.

No sé mucho sobre CFML, pero .NET tiene la capacidad de detectar las capacidades del navegador.Sin embargo, no tiene la capacidad de detectar si el navegador está capaz de javascript, pero ¿se ha convertido? apagado.Así que tú también estás atrapado allí.

Además de la etiqueta HTML noscript, no hay mucho que puedas hacer, hasta donde yo sé, además de escribir javascript progresivamente (ver mejora progresiva) para que no necesites verificar Javascript:off.

No conozco JS, pero ¿sería posible modificar los enlaces dentro de la página con JS?Si alguien va al enlace no modificado, no está usando JS, pero si lo hace, entonces está usando JS.¿Tiene esto algún sentido?

Nunca he descubierto cómo hacerlo sin un viaje de ida y vuelta, así que depende de cuál sea tu objetivo.

Si tienen que tener javascript para continuar, entonces (en .net) hice cosas como deshabilitar el botón de inicio de sesión en el lado del servidor, luego lo habilité en el lado del cliente con javascript y usé una etiqueta noscript para mostrar un mensaje de error.

Si tiene que funcionar de cualquier manera, puede usar la mejora progresiva y/o usar js para configurar un campo oculto y luego configurar una variable de sesión, pero esto significa que no lo sabrá hasta que lleguen a la segunda solicitud.

podrías escribir

<script type="text/javascript" language="javascript">document.write("<input type='hidden' name='hasJs' value='1' />");

o escriba una cookie a través de js y luego léala en el servidor si desea verificar si hay js en el lado del servidor.

Si está buscando una manera de verificarlo en el lado del servidor, puede enviarle al usuario un js que coloque una cookie...Si la cookie existe en una solicitud, entonces podrá saber si el script funcionó o no.

Una forma confiable de hacer esto es usar $.post de JavaScript para enviar una nota a su servidor.(Disculpas si hay algún error en esto, que se me pasó por la cabeza, se actualizará más adelante cuando empiece a realizar las pruebas).Debería permitirle compilarlo para que pueda incluso extraer datos de la sesión si están usando javascript, lo que le permitirá ofrecer reemplazos para javascript sin tener que recurrir a .

Su guión en la página:

<script>
function myJavascriptTest(){
    $.post ()('myJavascriptTest.php', {myJavascriptOn: true}, function(){
    return true;
}
myJavascriptTest()
</script>

Y en el .php objetivo...

<?php

if ($_POST['myJavascriptOn'] == true){
    $_SESSION['javascriptIsOn'] = true;
} else {
    $_SESSION['javascriptIsOn'] = false;
}
?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top