Ответ 1
Сделайте версию сайта без версии JavaScript по умолчанию. Включите небольшой script там, чтобы перенаправить на скриптовый сайт.
Или полностью отказаться от использования перенаправления и перейти с Progressive Enhancement
У меня есть сайт, который в значительной степени опирается на javaScript. Я создал зеркальный сайт, в котором есть все JS, а также все элементы, требующие удаления JS. Какой хороший и простой способ перенаправить пользователей на зеркальный сайт, если они не включены javaScript?
Я пробовал это, но это не кажется очень хорошим:
<noscript>
<meta http-equiv="refresh" content="0; URL=nojs/index.php">
</noscript>
Я также попытался поместить заголовок-перенаправление в тег noscript, но это не сработало.
Сделайте версию сайта без версии JavaScript по умолчанию. Включите небольшой script там, чтобы перенаправить на скриптовый сайт.
Или полностью отказаться от использования перенаправления и перейти с Progressive Enhancement
<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, и вы можете захотеть дать им возможность включить его, прежде чем перенаправить их.
Используйте этот код, который я придумал:
<noscript>
<style>html{display:none;}</style>
<meta http-equiv="refresh" content="0.0;url=nojs/index.php">
</noscript>
Он использует стиль, чтобы блокировать то, что на странице, чтобы люди ничего не заметили, прежде чем перенаправлять. Единственное, что меня раздражает, это то, что я хочу что-то лучше, чем мета-обновление, поскольку это может быть заблокировано в некоторых браузерах, таких как IE. Заголовок PHP на самом деле не является решением, поскольку вы не можете поместить его в тег noscript
, поскольку он просто проигнорирует его и сразу выпишет.
Каково ваше определение "не очень хорошо"?
Все мои сайты используют:
<noscript>
<meta http-equiv="refresh" content="0; url=http://www.sadtrombone.com/" />
</noscript>
Я бы не выполнял перенаправление на стороне клиента, поскольку это может раздражать пользователя. Вместо этого я бы использовал <noscript>
, чтобы показать содержимое этого сайта без JS на той же странице. Это может быть больше работы, но это определенно будет более плавным.
Я придумал лучшее решение, чем перенаправить пользователя, поскольку мета-обновление может быть отключено в 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>
Таким образом, теги находятся там, где они предназначены.