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

Искам да деактивирам зареждането на сайта plone, ако JS е деактивиран в браузъра. Къде точно да сменя кода? Кой шаблон/кожа да избера? Искам да се уверя, че JS винаги е активиран, докато разглеждате която и да е част от сайта на plone. Докато сърфирате, ако JS е деактивиран, мога да пренасоча към друга страница с маркер, за да активирам JS в браузъра и да върна hlink към сайта обратно, ако е активиран. Използвам 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, въпреки че можете да използвате no-js CSS правило, за да покажете съобщение, което инструктира потребителите да активират JavaScript (HTML5 Boilerplate има добра реализация на това) - person Jason Sperske; 28.08.2012
comment
@Amaan, Въпросът е ясен, не очаквам JS да активира JS, искам да деактивирам зареждането на сайта plone, ако JS за браузъра е деактивиран :) Моля, отговорете внимателно - person user956424; 28.08.2012
comment
@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

Желаете ли да изисквате и бисквитки? Ако е така, един от начините за решаване на това е:

  1. Променете основния шаблон на Plone, за да включите тест за определена бисквитка.
  2. Ако тази бисквитка не бъде намерена (тествайте с логиката на шаблона), покажете съдържанието „oops, трябва ви js“.
  3. В този раздел със съдържание без бисквитки включете вграден javascript, за да зададете бисквитка и да презаредите страницата. Ако не искате да разрешите на js да задава бисквитки, все пак можете да зададете параметър на заявка за пренасочване.
  4. Ако бисквитката или параметърът на заявката бъдат намерени, върнете истинското съдържание. Ако параметърът на заявката, задайте бисквитката само за http.

Ако искате да избегнете бисквитки или други механизми за сесии, алтернативен подход би бил:

Променете основния шаблон на Plone на

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

Лошото в това е, че страниците всъщност ще бъдат заредени без js — просто няма да се показват. Също така със сигурност е възможно съобщението за js-needed да мига, докато се зареждат други ресурси. Уверете се, че настройката на JS дисплея е вградена (не е ключ за готовност на страницата или друго събитие), за да минимизирате ефекта.

person SteveM    schedule 28.08.2012
comment
Има ли друга опция освен бисквитки? Благодаря ви предварително. - 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: Използвайте viewlet или персонализирайте main_template. - person Martijn Pieters; 28.08.2012