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é.

25
demandé sur j08691 2010-03-22 03:25:22

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

21
répondu Matt 2010-03-22 00:37:18
<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.

75
répondu Tyler Carter 2010-03-22 00:40:07

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.

44
répondu Ben Gollow 2012-10-26 12:01:09

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>
15
répondu Amy B 2010-03-22 00:28:12

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.

6
répondu Sasha 2010-03-22 00:29:27

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.

2
répondu Ben Gollow 2012-03-28 09:22:39