如何确保在遍历我的plone站点时始终启用浏览器中的javascript

时间:2012-08-28 07:38:48

标签: javascript plone

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

3 个答案:

答案 0 :(得分:3)

如果没有用户自己从浏览器设置中执行JS,则无法启用JS。您可以使用noscript标记添加有关如何启用JavaScript或重定向到包含说明的网页的说明:

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

meta标记在5秒内重定向到您的无JS页面,以允许浏览器通过单击后退按钮进入当前页面。如果重定向的时间太短,则该页面可能无法保存在历史记录according to this article

答案 1 :(得分:3)

您是否也愿意要求cookies?如果是这样,解决这个问题的一种方法是:

  1. 修改Plone的主模板以包含特定cookie的测试。
  2. 如果找不到该cookie(使用模板逻辑测试),请显示“oops,you need js”内容。
  3. 在该无cookie内容部分中,包含内联javascript以设置Cookie并重新加载页面。如果您不想允许js设置cookie,您仍然可以在重定向上设置查询参数。
  4. 如果找到cookie或查询参数,则返回实际内容。如果是查询参数,请设置http-only cookie。
  5. 如果您想避免使用cookie或其他会话机制,可以采用另一种方法:

    将Plone的主模板修改为

    1. 在可视门户或类似的包装器上设置display:none样式;
    2. 添加所需的JavaScript以查看显示样式的此页面消息;
    3. 使用内联JavaScript在JS-needed消息上设置display:none并在可视门户包装器上显示:block。
    4. 关于这个的问题是页面实际上将被加载w / o js - 只是没有显示。当其他资源加载时,js-needed消息肯定可能会闪烁。确保JS显示摆弄是内联的(不是键入页面就绪或任何其他事件)以最小化效果。

答案 2 :(得分:0)

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

我没有Plone的经验,也不知道模板是做什么的。