2010-01-20 7 views
0

Certains sites Web que je développe ont un grand besoin pour l'utilisation de Javascript, ils ne fonctionneront pas sans elle. Beaucoup de fonctions et d'actions du site dépendent d'un code Javascript qui ne peut pas être remplacé par du code côté serveur. Parfois, le Javascript est si complexe et nécessaire qu'il est impossible de fournir une solution de repli pour les navigateurs avec Javascript désactivé.Empêcher l'accès au site Web basé sur Javascript ou

Dans ce contexte, quelle serait la bonne façon de gérer la situation?

  • Option A: Laissez-le simplement. Si le site a besoin de beaucoup de Javascript, l'utilisateur se rendra compte que le site ne sera pas affiché et fonctionnera sans cela ...
  • Option B: Détecte d'une certaine manière si le navigateur a Javascript activé et fonctionne pleinement et s'il est Non, affichez un message à l'écran indiquant que le site Web ne peut être affiché correctement sans Javascript.
  • Option C: Je vous laisse à vous dans le cas où vous avez quelque chose à proposer ...
+0

Mettez du JavaScript dans votre navigateur et actualisez cette page. Je pense que la façon dont Stack Overflow le fait est plutôt bonne (essentiellement votre option B). – balpha

+0

L'approche SO n'est pas très bonne. Le message est caché à la fin du document si CSS n'est pas disponible. Là où c'est, c'est un gros avertissement rouge qui dit "fonctionne mieux avec JS" - que signifie "fonctionne mieux"? Un gros avertissement rouge implique qu'il est très important d'avoir JS, mais le libellé implique que vous obtenez juste un peu d'amélioration et que tout fonctionne encore sans elle. – Quentin

+0

@David: Il y a eu une discussion à ce sujet sur meta, au cas où vous êtes intéressé: http://meta.stackexchange.com/questions/27962/why-doesnt-super-user-work-without-javascript – balpha

Répondre

1

Option B. Utilisez la balise noscript html pour alerter vos utilisateurs.

0

Il est très rare qu'un site ait vraiment besoin de JavaScript (pas rare, mais rare). Dans les cas où cela est le cas, rendez-vous avec l'option B.

<noscript> 
    <p>Sorry, but this website depends on JavaScript. 
    Please ensure you are using a browser which supports 
    JavaScript and has it enabled.</p> 

    <p>We recommend <a href="http://opera.com/">Opera</a> or 
    <a href="http://getfirefox.com/">Firefox</a>. Other JavaScript 
    capable browsers are available.</p> 
</noscript> 
+0

Je ne suis pas d'accord . Beaucoup d'applications web modernes "ont besoin" de JavaScript. – stepanian

+0

La plupart des sites ne sont pas des applications web, et la plupart des applications web qui "ont besoin" de JavaScript pourraient être écrites pour éviter cette exigence. – Quentin

+0

Et bien sûr, vous me recommandez Opera ou Firefox pour mon téléphone portable? Ou quand je désactive JS avec NoScript dans Firefox? La plupart des navigateurs peuvent lancer JS cette fois. Ceux qui ne le peuvent pas sont ceux qui le désactivent par intention ou les utilisateurs mobiles qui ne naviguent pas sur Internet sur PC – MBO

1

Mettre

<noscript>You really need to enable JavaScript to use this site</noscript> 
0

Certainement pas A. Au moins l'option B. De préférence, toutes les fonctionnalités javascript devrait se dégrader avec grâce (sans provoquer des erreurs) au HTML pur.

+0

Ou mieux: toutes les fonctionnalités standard devraient être améliorées avec JavaScript si cela est possible. – MBO

0

Je le fais ici parce que tout le monde a dit essentiellement la même chose et vous pouvez commenter ce que je vais dire si vous aimez ...

Je ne vais pas utiliser la balise noscript car tout le reste sur le site sera toujours affiché. Je vais gérer une façon différente de détecter si Javascript est activé ou non et peut-être rediriger le navigateur vers une page spécifique. Je ne sais pas exactement comment je vais le faire, mais je vais avec ce concept.

Bien sûr, la plupart sinon tous les sites Web peuvent fonctionner avec Javascript, mais je développe cette application web qui utilise beaucoup de Javascript et oui, ça pourrait marcher sans elle, mais ce ne serait pas la même chose. Ce serait comme comparer un site fini et poli (Javascript activé) avec un encore en début de développement (Javascript désactivé).

Et oui, je veux fermer complètement l'utilisateur du site si Javascript est désactivé. Ne devrais-je pas faire ça? Peut-être pas, mais pour ce site spécifique, je le ferai. Pour cette application web spécifique, se dégrader gracieusement c'est inacceptable. Ma propre exigence n'est pas celle d'un client, juste pour m'en assurer.

Mais peut-être que je ne le ferai pas comme je l'ai dit plus haut, cela dépendra de tout le code Javascript dont j'ai besoin. J'ai commencé à développer cette application depuis longtemps, mais je devais la mettre en veille et maintenant, depuis trop longtemps, je vais recommencer à zéro. Je vais voir si je veux que le travail se dégrade gracieusement ou pas ...

C'était juste pour clarifier mes intentions sur les commentaires que vous avez faits.Après cela, je vais marquer la première réponse a accepté l'un parce qu'ils sont fondamentalement tous les mêmes.