8 votes

Uniquement pour les utilisateurs qui ont activé Javascript

J'envisage de créer un site Web qui ne prend en charge que les utilisateurs ayant activé JavaScript.

Si je ne prends en charge que les personnes qui ont activé JS, je n'ai pas besoin de passer du temps à m'assurer que l'interface utilisateur fonctionne sans JS et à créer des équivalents côté serveur pour la validation, etc.

  1. Est-ce possible ? Les différents navigateurs \platforms m'empêcher d'y parvenir ?
  2. Quel est le pourcentage d'utilisateurs qui ont désactivé JS de nos jours ?
  3. Comment faire pour vérifier si JS est activé en C#.

20voto

No more plays Points 21

Votre justification est bonne. Cependant, vous debe mettez en place une validation du côté serveur, sinon il sera très facile d'abuser de votre code en désactivant simplement JavaScript.

Non, rendre "impossible" la soumission de données sans JavaScript ne résoudra pas le problème.

D'après mon expérience personnelle, je pense que la plupart des utilisateurs d'Internet ont activé JS de nos jours. La partie des utilisateurs susceptibles d'avoir des problèmes avec les sites à forte teneur en JS sont les utilisateurs de téléphones portables. À moins que vous n'ayez besoin de les atteindre, cela ne devrait pas être un problème majeur.

Le moyen le plus simple de déterminer JS avec une seule redirection serait de définir un cookie avec du code JavaScript (document.cookie), puis d'utiliser la redirection window.location mentionnée plus haut. Après cela, le serveur devrait être capable de lire le cookie défini par JS, en supposant qu'il soit activé.

De plus, bien qu'il soit assez difficile de partager des règles de validation et d'autres logiques automatiquement à la fois sur le serveur et sur le client en utilisant des technologies comme C#, je vous suggère de vous renseigner sur Aptana Jaxer. Jaxer est un framework JavaScript côté serveur qui, entre autres choses, vous permettra de partager le même code JavaScript sur le client et le serveur. Très pratique si vous voulez valider sur le client, mais ne voulez pas écrire vos règles de validation deux fois !

6voto

cletus Points 276888

Voir :

En ce qui concerne la validation, vous devez toujours effectuer une validation côté serveur et jamais s'appuyer sur la validation côté client. Sinon, vous risquez de vous faire pirater.

Si vous offrez une expérience utilisateur riche et/ou que vous n'avez pas le temps de créer deux versions (ou plus) de votre site Web pour répondre à un si petit pourcentage, je pense que nous avons atteint un stade où cela est généralement acceptable.

Cela dépend toutefois des circonstances. Certains sites peuvent cibler des usages qui désactivent de manière disproportionnée Javascript, etc.

4voto

Joel Coehoorn Points 190579

Vous oubliez quelques scénarios de navigation :

  • A lot de plus en plus de personnes utilisent NoScript et des systèmes similaires, où le javascript est initialement désactivé. Ce n'est peut-être pas un problème pour vous, car la plupart de ces personnes l'activeront simplement lorsqu'elles en auront besoin.
  • Googlebot ne connaît pas le javascript. Vous devez vous assurer que le contenu est suffisamment bon sans javascript pour que Google l'indexe correctement.

2voto

Lucas Jones Points 11741

De nos jours, les seules personnes qui n'utilisent pas JS sont généralement :

  • Les malvoyants utilisent des lecteurs d'écran (l'effet des JS est généralement perdu).
  • Vous êtes conscient de la sécurité (ou paranoïaque ?) et vous naviguez avec NoScript désactivé.
  • Utilisateurs mobiles avec des navigateurs limités

Dans ASP.NET, ou tout autre site HTML, utilisez :

<script type="text/javascript">
    window.location="/hasJs.aspx";
</script>

Ce qui les redirigera vers une page pour les utilisateurs de JavaScript, qui peut définir un cookie ou quelque chose que vous pouvez vérifier dans votre page principale. Comme ceci (ou similaire) :

(dans hasJs.aspx) :

protected void Page_Load(object sender, object e) {
    Response.Cookies.Add(new HttpCookie("hasJs", "yes"));
    Response.Redirect("/Default.aspx");
}

(Site.master) :

<% if ( ! Request.Cookies.Contains("hasJs") ) { %>
    <script type="text/javascript">
         window.location="/hasJs.aspx";
    </script>
    This site requires JavaScript.
<% } %>

0voto

Thomaschaaf Points 5901

C'est possible bien sûr et si le client (si vous en avez un) est d'accord, c'est bon. Mais vous devez toujours faire la validation du côté serveur sinon un script enfant (même s'il sera utilisé dans une corp.) va casser votre script et peut-être même faire des choses que vous ne vouliez pas qu'il se produise.

http://www.w3schools.com/browsers/browsers_stats.asp

Vous devriez vérifier avec JS si le JS est activé ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X