2009-04-20 27 views

Répondre

10

En supposant que vous écrivez une application Web Java, une technique que j'ai utilisée avec succès est d'avoir la première page — généralement un formulaire de connexion — écrire un cookie de session lorsque la page se charge. Ayez ensuite le code Java que le formulaire soumet pour vérifier l'existence de ce cookie.

Sur le client:

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

Sur le serveur:

/** 
* 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

Une chose simple serait de faire un rappel de la page, comme un appel AJAX. Je ne pense pas qu'il existe un autre moyen de le déterminer, du moins pas universellement.

0

Essayez-vous de faire cette côté serveur ou sur le client dans une applet?

Si un navigateur ne prend pas en charge le javascript (ou l'a désactivé), il est hautement improbable qu'ils prennent en charge les applets Java.

3

Si une soumission de formulaire est effectuée, vous pouvez mettre une entrée masquée dans le formulaire et remplir sa valeur avec javascript (à partir de OnSubmit) et vérifier cela sur le côté serveur.

5

En yourform vous pouvez mettre le code comme ceci:

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

Le paramètre ne doit être soumis si le navigateur a des scripts désactivés. Dans vos applications Java, vous pouvez le vérifier comme suit:

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

J'aime cette idée ... mais est-ce une solution multi-navigateur? Il semble que quelque chose que IE6 aimerait gâcher. –

+1

Pourquoi dites-vous cela? L'as tu essayé? – pjesi

0

Si vous avez un support PHP, copiez et collez le code ci-dessous.

<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>"; 
?> 

vous souhaite une bonne chance et ne pas oublier de rendre votre code ouvert

Questions connexes