Il y avait un post ce matin en demandant au sujet de la façon dont beaucoup de gens de désactiver le javascript. Puis j'ai commencé à me demander quelles techniques peut être utilisée pour déterminer si l'utilisateur a désactivé. Quelqu'un sait de quelques courts/moyens simples pour détecter si le Javascript est désactivé? mon intention est de donner un avertissement que le site n'est pas en mesure de fonctionner correctement sans le navigateur ayant JS activé, finalement j'ai envie de les rediriger vers un contenu qui est capable de travailler en l'abscence de JS, mais j'ai besoin de cette détection d'une place de titulaire pour commencer.
Réponses
Trop de publicités?Je tiens à ajouter mon .02 ici. Il n'est pas 100% à l'épreuve des balles, mais je pense que c'est assez bon.
Le problème, pour moi, avec l'exemple préféré de mettre en place une sorte de "ce site ne fonctionne pas si bien sans Javascript" le message est que vous devez vous assurer que votre site fonctionne ok sans Javascript. Et une fois que vous avez commencé en bas de la route, puis vous commencez à réaliser que le site doit être à l'épreuve des balles avec JS désactivé, et ça, c'est une grosse partie du travail supplémentaire.
Donc, ce que vous voulez vraiment est une "redirection" vers une page qui dit "activer le JS, idiot". Mais, bien sûr, vous ne pouvez pas fiable ne méta redirections. Alors, voici la suggestion:
<noscript>
<style type="text/css">
.pagecontainer {display:none;}
</style>
<div class="noscriptmsg">
You don't have javascript enabled. Good luck with that.
</div>
</noscript>
...où tout le contenu de votre site est enveloppé dans une div de classe "pagecontainer". Le CSS à l'intérieur de la balise noscript sera alors de masquer tous le contenu de votre page, et au lieu d'afficher ce que "sans JS" message que vous souhaitez afficher. C'est effectivement ce que Gmail apparaît à faire...et si c'est assez bon pour Google, c'est assez bon pour mon petit site.
Je suppose que vous êtes en train de décider si ou de ne pas livrer le JavaScript contenu amélioré. Les meilleures mises en œuvre dégrader proprement, pour que le site continue de fonctionner sans JavaScript. Je suppose que vous parlez de serveur-côté de détection, plutôt que d'utiliser l' <noscript>
balise.
Il n'y a pas une bonne façon d'exécuter JavaScript côté serveur de détection. Au lieu de cela, l'utilisation de JavaScript pour définir un cookie, et pour vérifier que les cookies à l'aide de script côté serveur de la suite de la page vue; fournir un contenu de manière appropriée.
noscript
des blocs sont exécutés lorsque le JavaScript est désactivé, et sont généralement utilisées pour afficher un contenu alternatif à celui que vous avez généré en JavaScript, par exemple
<script type="javascript">
... construction of ajaxy-link, setting of "js-enabled" cookie flag, etc..
</script>
<noscript>
<a href="next_page.php?nojs=1">Next Page</a>
</noscript>
Les utilisateurs sans js obtiendrez l' next_page
lien - vous pouvez ajouter des paramètres, ici, de sorte que vous savez sur la page suivante si ils viennent par l'intermédiaire d'un JS/non-JS lien, ou de tenter de définir un cookie via JS, l'absence de ce qui implique le JS est désactivé. Ces deux exemples sont assez trivial et ouvert à la manipulation, mais vous obtenez l'idée.
Si vous voulez purement statistique idée de la façon dont beaucoup de vos utilisateurs ont désactivé javascript, vous pourriez faire quelque chose comme:
<noscript>
<img src="no_js.gif" alt="Javascript not enabled" />
</noscript>
ensuite, vérifiez vos journaux d'accès de voir combien de fois cette image a été frappé. Un peu brut de solution, mais il vous donnera une bonne idée de pourcentage sage pour l'utilisateur de votre base.
L'approche ci-dessus (l'image de suivi) ne fonctionne pas bien pour les navigateurs textuels ou ceux qui ne supportent pas le js à tous, donc si votre userbase sautes principalement vers cette région, ce peut-être pas la meilleure approche.