Comment rediriger si javaScript est désactivé?
J'ai un site qui repose fortement sur javaScript. J'ai créé un site miroir, qui a tous les JS ainsi que tous les éléments qui nécessitent js supprimés. Quel est un bon moyen facile de rediriger les utilisateurs vers le site miroir s'ils n'ont pas javaScript activé?
J'ai essayé ceci, mais cela ne semble pas très bon:
<noscript>
<meta http-equiv="refresh" content="0; URL=nojs/index.php">
</noscript>
J'ai également essayé de mettre header-redirect dans la balise noscript, mais cela n'a pas fonctionné.
6 réponses
Faites de la version sans JavaScript du site la version par défaut. Inclure un petit script là-bas pour rediriger vers le site scripté.
Ou, abandonner complètement l'utilisation d'une redirection et aller avec amélioration Progressive
<noscript>
<p>This site is best viewed with Javascript. If you are unable to turn on Javascript, please use this <a href="http://sitewithoutjavascript.com">site</a>.</p>
</noscript>
Certaines personnes désactivent volontairement Javascript, et vous voudrez peut-être leur donner une chance de l'activer avant de les rediriger.
Utilisez ce code que j'ai trouvé:
<noscript>
<style>html{display:none;}</style>
<meta http-equiv="refresh" content="0.0;url=nojs/index.php">
</noscript>
Il utilise le style pour bloquer ce qui est sur la page afin que les gens ne remarquent rien avant qu'il redirige. La seule chose qui m'agace est que je veux quelque chose de mieux que meta refresh car cela peut être bloqué sur certains navigateurs comme IE. Un en-tête PHP n'est pas vraiment une solution car vous ne pouvez pas le mettre dans une balise noscript
car il va simplement l'ignorer et l'écrire tout de suite.
Quelle est votre définition de "pas très bon"?
Tous mes sites utilisent:
<noscript>
<meta http-equiv="refresh" content="0; url=http://www.sadtrombone.com/" />
</noscript>
Je ne ferais pas de redirection côté client, car cela pourrait sembler ennuyeux pour l'utilisateur. Au lieu de cela, ce que je ferais est d'utiliser <noscript>
pour afficher le contenu de ce site sans JS sur la même page. Il peut être plus de travail, mais ce serait certainement une expérience plus lisse.
J'ai trouvé une meilleure solution que d'avoir à rediriger l'utilisateur car meta-refresh peut être désactivé dans IE.
Mettez ceci dans la tête:
<style>div#body{display:none;}</style>
Mettez ceci dans le corps:
<noscript>NO JAVASCRIPT CONTENT HERE</noscript>
<noscript><div id="body"></noscript>JAVASCRIPT CONTENT HERE<noscript></div></noscript>
De cette façon, les balises sont là où elles sont censées être.