запретить браузерам без включенного javascript использовать мой php сайт - PullRequest
1 голос
/ 26 января 2009

Я пишу довольно маленькое веб-приложение на PHP и намереваюсь использовать DOJO, чтобы сделать его "модным" и, скорее всего, обработать некоторую проверку на стороне клиента (будет также проверка на стороне сервера).

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

Я видел, как это делают другие сайты, но я не могу понять, как это обеспечить.
Например, попробуйте войти в систему с именем пользователя = пользователь и пароль = пользователь
http://demo.actitime.com/login.do?username=user

Я бы тогда хотел, чтобы это происходило на каждой странице.

Любая помощь приветствуется.

occhiso

Ответы [ 8 ]

21 голосов
/ 26 января 2009

Я не думаю, что это разумный подход.

Просто приложите немного больше усилий к сайту, чтобы пользователи без javascript могли также получить доступ к сайту. Не забывайте, что они ваши клиенты. И у них, вероятно, есть веская причина отключить JavaScript.

4 голосов
/ 26 января 2009

Вы знаете, 2009 год, а не 1997. Эти взломы принадлежат прошлому, мертвые и похороненные, как грязь, которой они были.

Что касается полезного ответа: читайте о изящном деградации .

Что касается вашего ответа: CSS может выполнить то, что вы делаете с DOJO без Javascript вообще (по крайней мере, вещи, которые вы упоминаете). Если javascript не включен, потребуется обратное соединение с сервером, вот и все. Я не знаю, что вы подразумеваете под «логикой», но канонический смысл этого термина лучше сделать с PHP и, возможно, с системой шаблонов, чем с использованием javascript.

Проверка ввода без обращения туда и обратно - это хорошо, но если у меня нет javascript или я не могу его использовать, проверка сервера лучше, чем no-frickin-site.

Да, это действительно так плохо.

РЕДАКТИРОВАТЬ: Полковник Спонсз указывает еще одну полезную ссылку о постепенной деградации .

4 голосов
/ 26 января 2009

Единственный подходящий ответ на это: «Почему вы хотите?»

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

4 голосов
/ 26 января 2009

На ум приходят две вещи:

  • Используйте теги <noscript> для содержимого; и
  • В случае этого веб-сайта и для аналогичной функциональности вместо кнопки отправки используется обычная кнопка с обработчиком onclick:

Невозможно отправить без включенного JavaScript.

1 голос
/ 04 февраля 2009

Некоторые опытные пользователи отключают JavaScript по умолчанию и включают его для каждого веб-сайта. Я бы просто предупредил их, что для дальнейшего развития требуется JavaScript. Используйте для отображения текста в браузерах без JS или с отключенным JS:

<noscript>
    <p style="color: Red;">Warning: JavaScript is required to display anything after you login. Please enable JavaScript or use a different browser</p>
</noscript>
1 голос
/ 26 января 2009

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

0 голосов
/ 19 июля 2009

Лучшая причина, по которой я могу придумать, - это запретить людям получать доступ к формам и использовать их без браузеров, основанных на сценариях Java, поэтому они скрываются от счетчиков.

Например, если кто-то решит спамить, даже с помощью capcha, и скрывает свой isp, не включив javascript (многие счетчики полагаются на него), то я думаю, что было бы неплохо запретить все браузеры, не поддерживающие javascript, на веб-сайте .

На самом деле я думаю, что я буду.

Хорошая идея 'occhiso'.

0 голосов
/ 26 января 2009

Одна из причин заключается в том, что мне нужен интерфейс с вкладками, который позволяет выполнять одну и ту же задачу разными способами. Многое из той же логики используется для каждой вкладки, поэтому я не хотел разбивать ее на отдельную страницу.

Используя dojo, я могу довольно легко добиться этого, разместив все содержимое отдельных div на одной странице, а затем dojo помещает каждый div в свою вкладку. Без JavaScript вы бы сразу увидели все вкладки (div).

Есть несколько маленьких икок, подобных этому, и я подумал, что если сделать это обязательным требованием, он всегда будет вести себя хорошо и выглядеть хорошо, а те, у кого нет JavaScript, упустят его, учитывая, что это ни в коем случае не критически важный сайт!

Кроме того, это означает, что я могу применить проверку ввода без необходимости перезагрузки страницы.

Это действительно так плохо?

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