2009-04-20 14 views

Respuesta

10

Suponiendo que estás escribiendo una aplicación web de Java, una técnica que he utilizado con éxito es tener la primera página que se accede — típicamente un formulario de acceso — escribir una cookie de sesión cuando se carga la página. Luego, tenga el código de Java que el formulario envía para verificar la existencia de esa cookie.

En el cliente:

<script type="text/javascript"> 
    function createCookie(name, value, days) { 
    var expires = ""; 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
     expires = "; expires=" + date.toGMTString(); 
    } 
    var cookie = name + "=" + value + expires + "; path=" + "/"; 
    document.cookie = cookie; 
    } 
    createCookie("JavaScriptEnabledCheck", 1, 0); 
</script> 

En el servidor:

/** 
* Returns <code>true</code> if the session cookie set by the login form 
* is not present. 
* 
* @param request The HTTP request being processed 
* @return <code>true</code> if JavaScript is disabled, otherwise <code>false</code> 
*/ 
private boolean isJavaScriptDisabled(HttpServletRequest request) 
{ 
    boolean isJavaScriptDisabled = true; 
    Cookie[] cookies = request.getCookies(); 

    if (cookies != null) 
    { 
    for (int i = 0; i < cookies.length; i++) 
    { 
     if ("JavaScriptEnabledCheck".equalsIgnoreCase(cookies[i].getName())) 
     { 
     isJavaScriptDisabled = false; 
     break; 
     } 
    } 
    } 

    return isJavaScriptDisabled; 
} 
0

Una cosa simple sería hacer una llamada desde la página, como una llamada AJAX. No creo que haya otra forma de determinar esto, al menos no universalmente.

0

¿Está tratando de hacer esto en el servidor o en el cliente en un applet?

Si un navegador no es compatible con javascript (o lo tiene apagado), es muy poco probable que tenga soporte para los applets de Java.

3

Si se realiza un envío de formulario, puede poner una entrada oculta en el formulario y completar su valor con javascript (de OnSubmit) y verificar eso en el lado del servidor.

5

En yourform para usted puede poner un código como éste:

<noscript> 
    <input type="hidden" name="JavaScript" value="false" /> 
</noscript> 

El parámetro no deben presentarse si el navegador tiene scripts desactivados. En sus aplicaciones Java puede verificarlo de esta manera:

boolean javaScript = request.getParameter("JavaScript") == null; 
+0

me gusta esta idea ... pero ¿es una solución multi-navegador? Parece que a algo IE6 le encantaría estropear. –

+1

¿Por qué dices eso? ¿Lo has probado? – pjesi

0

Si tiene soporte de PHP solo copie y pegue el siguiente código.

<noscript> 
    <input type="hidden" name="JavaScript" value="false" /> 
</noscript> 
/*This code is developed by Lankeshwer(nick name only) and can be used as open source by anyone*/ 
<?PHP 
if($_POST['JavaScript']!='false'){ 
echo "<run your javascript code here>";} //replace this line with your actual javascript code 
else 
echo "<html><head><meta http-equiv="refresh" content="0;url=www.kharida.com"></head</html>"; 
?> 

le deseo una buena suerte y no se olvide de hacer que el código abierto

Cuestiones relacionadas