2011-07-28 16 views
-4

Je veux savoir comment vérifier si Javascript est activé dans un navigateur. J'en ai besoin pour éviter la validation côté serveur.Comment vérifier si Javascript est activé dans un navigateur

+6

Ne faites pas ça! Ne jamais éviter la validation côté serveur! Même si JS est activé, tout le monde peut faire la demande GET ou POST de toute façon. La validation JS est uniquement pour l'expérience utilisateur. –

+3

12 questions, et aucune réponse acceptée? C'est mal vu par la communauté. Vous devriez vraiment accepter certaines réponses si vous continuez à poser des questions. – abelenky

Répondre

2

Vous ne voulez jamais éviter la validation côté serveur, il suffit de le faire deux fois.

4

Vous pouvez effectuer diverses vérifications, comme ajouter un champ masqué au formulaire que vous remplissez à partir de Javascript. Le serveur peut vérifier si cette valeur est définie, et si oui, supposer que javascript est actif. Mais vous ne devriez jamais compter sur la validation côté client. Effectuez toujours la validation côté serveur. La validation côté client est seulement un extra pour améliorer la convivialité.

3

Vous ne voulez pas cela.

La validation côté client est seulement quelque chose d'informer directement les utilisateurs de tous les champs incorrectement remplis, mais la vraie validation doit être faite côté serveur. Le client pourrait changer le JavaScript et le faire faire ce qu'il veut, donc ce n'est pas fiable. Pourquoi ne pas simplement toujours vérifier côté serveur? C'est plus avantageux.

0

Si vous voulez seulement détecter si Javascript est activé parce que votre site l'exige pour être utile, ou si vous avez une disposition différente pour les utilisateurs non-Javascript, vous pouvez utiliser l'élément <noscript>. Dans celui-ci, vous pouvez mettre tout ce que vous voulez que l'utilisateur voit si Javascript n'est pas activé. Cela peut être un message simple ou une mise en page entière.

<body> 
    //normal layout here 

    <noscript> 
     //message or alternative layout here, Javascript users won't see this. 
    </noscript> 
</body> 

Si vous souhaitez une mise en page totalement nouvelle, vous aurez besoin pour couvrir l'autre mise en page avec quelque chose comme ceci:

Demo (code): http://jsfiddle.net/ThinkingStiff/nK4Ka/
Demo (page pour voir sans JS, depuis jsFiddle a besoin): http://jsfiddle.net/ThinkingStiff/nK4Ka/show/

HTML:

<div>Hello, Javascript!</div> 

<noscript> 
    <div>Hello, No Javascript</div> 
</noscript> 

CSS:

noscript { 
    background-color: white; 
    height: 100%; 
    left: 0; 
    overflow: scroll; 
    position: fixed; 
    top: 0; 
    width: 100%; 
} 
Questions connexes