Как убедиться, что javascript в браузере всегда включен при просмотре моего сайта plone

Я хочу отключить загрузку сайта plone, если JS отключен в браузере. Где именно изменить код? Какой шаблон/скин выбрать? Я хочу убедиться, что JS всегда включен при просмотре любой части сайта plone. Во время просмотра, если JS отключен, я могу перенаправить на другую страницу с тегом, чтобы включить JS в браузере и вернуть ссылку на сайт, если он включен. Я использую Plone 4.1.


person user956424    schedule 28.08.2012    source источник


Ответы (3)


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

<noscript>
    <meta http-equiv="Refresh" content="5;url=http://example.com/foo/bar.php?js=false" />
</noscript>

Тег meta перенаправляет на вашу страницу без JS через 5 секунд, чтобы позволить браузерам перейти на текущую страницу, нажав кнопку «Назад». Если время перенаправления слишком мало, страница может не сохраниться в истории согласно этой статье

person Some Guy    schedule 28.08.2012
comment
Я полагаю, технически вы должны сказать, что нет способа включить JavaScript с помощью JavaScript, хотя вы можете использовать правило CSS no-js, чтобы показать сообщение, которое инструктирует пользователей включить JavaScript (HTML5 Boilerplate имеет хорошую реализацию этого) - person Jason Sperske; 28.08.2012
comment
@Amaan, вопрос ясен, я не ожидаю, что JS включит JS, я хочу отключить загрузку сайта plone, если JS для браузера отключен :) Пожалуйста, ответьте внимательно - person user956424; 28.08.2012
comment
@user956424 user956424 Во время просмотра, если JS отключен, я могу перенаправить на другую страницу с тегом включить JS в браузере и... Вы не сказали, что собираетесь проинструктировать их. Вы сказали, что собираетесь включить JS. В любом случае, я отредактирую свой ответ, чтобы добавить, как делать то, что вы хотите. - person Some Guy; 28.08.2012
comment
@Amaan, я согласен с отредактированным ответом, но где на сайте plone я должен добавить это? какой скин/шаблон? - person user956424; 28.08.2012
comment
@ user956424 Я действительно не знаю, так как никогда не использовал Plone. Но если немного поискать, это выглядит так, как будто оно должно помочь вам добавить HTML в твоя страница. - person Some Guy; 28.08.2012

Готовы ли вы также требовать файлы cookie? Если это так, один из способов решить эту проблему:

  1. Измените основной шаблон Plone, чтобы включить тест для определенного файла cookie.
  2. Если этот файл cookie не найден (проверьте с помощью логики шаблона), покажите содержимое «упс, вам нужен js».
  3. В этом разделе содержимого без файлов cookie включите встроенный javascript, чтобы установить файл cookie и перезагрузить страницу. Если вы не хотите разрешать js устанавливать файлы cookie, вы все равно можете установить параметр запроса для перенаправления.
  4. Если файл cookie или параметр запроса найден, верните реальный контент. Если параметр запроса, установите файл cookie только для http.

Если вы хотите избежать использования файлов cookie или других механизмов сеанса, альтернативным подходом может быть:

Измените основной шаблон Plone на

  1. Установить стиль display:none на визуальном портале или аналогичной оболочке;
  2. Добавьте сообщение JavaScript, необходимое для просмотра этой страницы, с включенным стилем отображения;
  3. Вставьте встроенный JavaScript, чтобы установить display:none в сообщении, требующем JS, и display:block в оболочке визуального портала.

Суть в том, что страницы на самом деле загружаются без js — просто не отображаются. Также, безусловно, возможно, что сообщение о необходимости js может появиться во время загрузки других ресурсов. Убедитесь, что манипулирование отображением JS встроено (не связано с готовностью страницы или любым другим событием), чтобы свести к минимуму эффект.

person SteveM    schedule 28.08.2012
comment
Есть ли какие-либо другие варианты, кроме файлов cookie? Заранее спасибо. - person user956424; 29.08.2012
comment
Если вы не можете использовать куки, вы не сможете легко записать тот факт, что у них есть доступный JavaScript. Это означало бы перенаправление при каждом просмотре страницы. Вы можете изучить механизм сеансов и использовать толстые URL-адреса для идентификатора сеанса. - person SteveM; 30.08.2012

Ваши страницы должны быть загружены JavaScript, который заменяет статическую страницу Please enable JavaScript in your browser. Это единственный способ решить проблему.

У меня нет опыта работы с Plone и я не знаю, какой шаблон это делает.

person Pavel Ognev    schedule 28.08.2012
comment
это именно то, что я хочу знать, должен ли код использоваться для Plone :) - person user956424; 28.08.2012
comment
@ user956424: Используйте вьюлет или настройте файл main_template. - person Martijn Pieters; 28.08.2012