Как определить, что клиент имеет включенный / выключенный JavaScript из Rails? - PullRequest
3 голосов
/ 08 сентября 2010

Я не хочу иметь дело с пользователями, у которых отключен JavaScript, поэтому я хочу просто запретить им использовать мое приложение. Я хочу определить, включен ли у пользователя javascript, чтобы я мог перенаправить его на страницу, которая говорит ему, что ему нужно использовать javascript. Я уверен, что это в заголовке запроса. У кого-нибудь есть идеи, как мне это сделать?

Ответы [ 6 ]

6 голосов
/ 08 сентября 2010

Тег noscript - самое простое решение, хотя и не совсем то, что вы ищете.

<noscript>Get outta here.</noscript>
3 голосов
/ 08 сентября 2010

Нет способа обнаружить JavaScript на стороне сервера. Однако вы можете использовать тег NOSCRIPT для отображения сообщения о том, что вашему веб-сайту требуется JavaScript.

Например, отключите JavaScript в вашем браузере и загрузите страницу переполнения стека. В верхней части страницы появится неприятное красное сообщение, предупреждающее вас о том, что сайт лучше всего работает с включенным JavaScript. Вы можете проверить исходный код Stack Overflow и стили CSS, чтобы увидеть, как они его реализовали.

Если вы действительно хотите удержать пользователей, не поддерживающих JavaScript, от использования вашего веб-сайта, вы можете поместить свое сообщение в div внутри тега noscript и развернуть div, чтобы охватить все на странице.

3 голосов
/ 08 сентября 2010

Вы не можете.Сервер не знает, что включил клиент.Вы даже не можете «обнаружить», отключен ли Javascript от клиента (потому что, что бы вы использовали для этого?).

Вы можете использовать трюки, чтобы показать содержимое, когда Javascript отключен (например, <noscript>, или используя Javascript, чтобы скрыть контент, предназначенный только для JS).

3 голосов
/ 08 сентября 2010

Вам действительно нужен редирект вообще? Поместите сообщение в элемент <noscript>, и оно будет отображаться только для тех, к которым оно относится.

1 голос
/ 08 сентября 2010

У вас может быть целевая страница с фрагментом javascript, который запускается и перенаправляет на настоящую рейлистую целевую страницу, или выполнить вызов AJAXY, чтобы получить данные, которые вы хотите показать пользователю.Это, безусловно, потребует включения JavaScript для продолжения.

1 голос
/ 08 сентября 2010

Вам нужен только HTML:

<noscript><meta http-equiv="refresh" content="0;url=http://example.com/use_js.html" /></noscript>

Это, конечно, не помешает серверу обслуживать контент, он только выведет этот тег meta refresh, который будет проанализирован (и выполнен путем перенаправления пользователя) клиентами, у которых не отключен JavaScript или JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...