2008-09-05 19 views

Respuesta

5

¿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> 
5

Utilice <noscript> etiquetas HTML.

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

Puede tener javascript ejecutar alguna consulta AJAX y comprobar si tiene. Los que descargan la página y no ejecutan la consulta tienen JS deshabilitado o son robots.

2

Está solicitando una verificación para ver si javascript está habilitado. Solo puedo pensar en hacer exactamente lo que dice el OP: intente utilizar Javascript con un intervalo para enviar una devolución de llamada si JS está activado. Desafortunadamente, no creo que pueda verificar si JS está habilitado y por qué usa etiquetas. en lugar de procesar contenido diferente del servidor.

0

Realmente todo lo que puede hacer es poner algún mensaje en las etiquetas. Parece que recuerdo intentar esto en ASP.NET en alguna parte, pero en realidad solo se puede decir si el navegador admite Javascript, no si realmente está permitido/habilitado.

0

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 es capaz de de javascript, pero lo ha convertido en. Entonces, estás atrapado allí también.

Además de la etiqueta HTML noscript, no hay mucho que puedas hacer, hasta donde yo sé, además de escribir JavaScript de forma progresiva (ver mejora progresiva) para que no necesites comprobar Javascript: desactivado.

5

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

0

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

0

nunca han trabajado en cómo hacerlo sin un ida y vuelta, por lo que depende de cuál es su meta.

Si tienen que tener javascript para proceder, entonces (en .net) hice cosas como desactivar el botón de inicio de sesión en el lado del servidor, luego habilité 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 establecer un campo oculto y luego establecer una variable de sesión, pero esto significa que no lo sabe hasta que lleguen al segundo solicitud.

6

esto es un truco total, pero podría usar un iframe dentro de la etiqueta noscript para activar un HTTP GET en una url que indique al servidor que un usuario no tiene habilitado javascript.

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

Sí, noScript snippet is right.

2

Si usa Unobtrusive JavaScript, entonces no necesita comprobar si el usuario tiene JavaScript habilitado.

Si tienen habilitado JavaScript, obtendrán el efecto completo, pero si no lo han hecho, los usuarios podrán seguir utilizando su sitio. Y además de ser mejor para la accesibilidad, es posible que este enfoque aumente su SEO.

0

se podría escribir

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

o no escribir una cookie a través de js y luego leerlo en el servidor si desea comprobar el servidor para js.

0

si está buscando una forma de verificarlo desde el lado del servidor, puede enviar al usuario un js que ponga una cookie ... si la cookie existe en una solicitud, entonces puede decir si el script funcionó o ¡no!

0

Una manera confiable de hacer esto es usar $ .post de javascript para enviar una nota a su servidor. (Disculpe si hay algún error en esto, que se borre de mi cabeza, se actualizará más adelante cuando llegue a las pruebas). Debería permitirte construirlo para que puedas extraer datos de la sesión si están usando javascript, lo que te permitirá reemplazar a javascript sin tener que recurrir a ellos.

Su en la página de la escritura:

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

Y en el .php apuntado ...

<?php 

if ($_POST['myJavascriptOn'] == true){ 
    $_SESSION['javascriptIsOn'] = true; 
} else { 
    $_SESSION['javascriptIsOn'] = false; 
} 
?> 
Cuestiones relacionadas