1

如果浏览器中禁用了 JS,我希望禁用加载 plone 站点。我究竟在哪里更改代码?我选择哪个模板/皮肤?我想确保在浏览 plone 站点的任何部分时始终启用 JS。浏览时,如果 JS 被禁用,我可以重定向到另一个带有标签的页面以在浏览器中启用 JS,如果启用,则返回指向该站点的 hlink。我正在使用克隆 4.1

4

3 回答 3

3

没有用户自己从浏览器设置中启用 JS 是无法启用的。noscript您可以使用以下标签添加有关如何启用 JavaScript 或重定向到具有说明的页面的说明:

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

meta标签会在 5 秒内重定向到您的无 JS 页面,以允许浏览器通过单击后退按钮进入当前页面。如果重定向的时间太少,页面可能不会按照这篇文章保存在历史记录中

于 2012-08-28T07:40:23.703 回答
3

你愿意也需要cookie吗?如果是这样,解决此问题的一种方法是:

  1. 修改 Plone 的主模板以包含对特定 cookie 的测试。
  2. 如果未找到该 cookie(使用模板逻辑进行测试),则显示“哎呀,您需要 js”内容。
  3. 在该无 cookie 内容部分,包括内联 javascript 以设置 cookie 并重新加载页面。如果不想让js设置cookies,仍然可以在redirect上设置查询参数。
  4. 如果找到cookie或查询参数,则返回真实内容。如果查询参数,设置http-only cookie。

如果您想避免使用 cookie 或其他会话机制,另一种方法是:

修改Plone的主模板为

  1. 在可视门户或类似包装器上设置 display:none 样式;
  2. 添加一个 JavaScript-needed to view this page message with display style on;
  3. 放入内联 JavaScript 以在 JS 需要的消息上设置 display:none 并在可视门户包装器上设置 display:block。

问题在于页面实际上是在没有 js 的情况下加载的——只是不显示。当然,在加载其他资源时,js-needed 消息可能会闪现。确保 JS 显示摆弄是内联的(不是键控到页面就绪或任何其他事件)以最小化效果。

于 2012-08-28T15:35:38.000 回答
0

您的页面必须由 加载JavaScript,它替换静态页面Please enable JavaScript in your browser。这是解决问题的唯一方法。

我没有经验,Plone也不知道什么模板可以做到这一点。

于 2012-08-28T07:50:33.597 回答