Как перенаправить, если javaScript отключен? - PullRequest
28 голосов
/ 22 марта 2010

У меня есть сайт, который сильно зависит от javaScript.Я создал зеркальный сайт, на котором удалены все JS, а также все элементы, требующие JS.Какой хороший и простой способ перенаправить пользователей на зеркальный сайт, если у них не включен javaScript?

Я пробовал это, но это не очень хорошо:

<noscript>
  <meta http-equiv="refresh" content="0; URL=nojs/index.php">
</noscript>

Я также пытался поместить заголовок перенаправления в тег noscript, но это не сработало.

Ответы [ 6 ]

77 голосов
/ 22 марта 2010
<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>

Некоторые люди намеренно отключают Javascript, и вы, возможно, захотите дать им возможность включить его перед перенаправлением.

47 голосов
/ 25 марта 2012

Используйте этот код, который я придумал:

<noscript>
  <style>html{display:none;}</style>
  <meta http-equiv="refresh" content="0.0;url=nojs/index.php">
</noscript>

Он использует стиль, чтобы блокировать то, что находится на странице, чтобы люди ничего не заметили, пока он не перенаправил. Единственное, что меня раздражает, это то, что я хочу что-то лучше, чем мета-обновление, поскольку это может быть заблокировано в некоторых браузерах, таких как IE. Заголовок PHP на самом деле не является решением, так как вы не можете поместить его в тег noscript, так как он просто проигнорирует его и сразу запишет.

22 голосов
/ 22 марта 2010

Сделать версию сайта без JavaScript по умолчанию. Добавьте туда небольшой скрипт для перенаправления на сайт со сценарием.

Или полностью отказаться от использования перенаправления и перейти с Прогрессивное улучшение

15 голосов
/ 22 марта 2010

Как вы определяете "не очень хорошо"?

Все мои сайты используют:

<noscript>
  <meta http-equiv="refresh" content="0; url=http://www.sadtrombone.com/" />
</noscript>
6 голосов
/ 22 марта 2010

Я бы не стал выполнять перенаправление на стороне клиента, поскольку это может показаться раздражающим для пользователя. Вместо этого я бы использовал <noscript>, чтобы показать содержимое этого сайта без JS на той же странице. Это может быть больше работы, но это определенно будет более гладким опытом.

2 голосов
/ 28 марта 2012

Я придумал лучшее решение, чем перенаправление пользователя, поскольку метаобновление можно отключить в IE.

Поместите это в ГОЛОВУ:

<style>div#body{display:none;}</style>

Поместите это в ТЕЛО:

<noscript>NO JAVASCRIPT CONTENT HERE</noscript>

<noscript><div id="body"></noscript>JAVASCRIPT CONTENT HERE<noscript></div></noscript>

Таким образом, теги находятся там, где они должны быть.

...