Подтвердить что ты не робот

Как перенаправить, если javaScript отключен?

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

Я пробовал это, но это не кажется очень хорошим:

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

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

4b9b3361

Ответ 1

Сделайте версию сайта без версии JavaScript по умолчанию. Включите небольшой script там, чтобы перенаправить на скриптовый сайт.

Или полностью отказаться от использования перенаправления и перейти с Progressive Enhancement

Ответ 2

<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, и вы можете захотеть дать им возможность включить его, прежде чем перенаправить их.

Ответ 3

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

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

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

Ответ 4

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

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

<noscript>
  <meta http-equiv="refresh" content="0; url=http://www.sadtrombone.com/" />
</noscript>

Ответ 5

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

Ответ 6

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

Поместите это в HEAD:

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

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

<noscript>NO JAVASCRIPT CONTENT HERE</noscript>

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

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