2

我是 Plone 和 jQueryUI 的新手,并且无法让任何 jQueryUI 在 Plone 页面上工作。

我安装了 Plone 4 (4.1.4 41143) 和 jQueryUI 1.8.16 (http://plone.org/products/collective.js.jqueryui),

在 Zope 管理界面 > portal_javascripts 下,collective.js.jqueryui.custom.min.js 存在并启用。

为了尝试实现http://jqueryui.com/demos/button/中的示例,我放置在 Plone 页面的正文中:

<script type="text/javascript">
    jQuery({function($) {
        $( "input:submit, a, button", ".demo" ).button();
        $( "a", ".demo" ).click(function() { return false; });
    });
</script>

<DIV class=demo>
<BUTTON type=submit>A button element</BUTTON> <INPUT value="A submit button"  type=submit> <A href="#">An anchor</A>
</DIV><!-- End demo -->

但结果页面未显示预期结果。

我尝试用“$”、“collective.js.jqueryui.custom.min”替换上面代码中的“jQuery”,但还没有任何效果。

我能够让一些 jQueryUI 在 Plone 之外工作,但有兴趣知道如何在 Plone 中使用它。任何帮助表示赞赏。

4

4 回答 4

7

您的脚本标签的内容可能正在被 Plone 的 HTML 过滤删除。您可以在“站点设置”、“HTML 过滤”中更改它。(那里的对话框很混乱,您必须单击两个按钮。首先从“讨厌的标签”中删除,然后在页面底部“保存”。)

但请注意,不允许用户使用scriptembed和其他标签有很好的安全原因。它可能会导致各种麻烦,例如当他们也被允许在评论中,或者经验不足的用户复制/粘贴危险代码时。

如果您只是在练习,而不是将您的网站放在糟糕的 Internet 上,那会很好,但是如果您开始部署一个真实的网站,最好将脚本内容放入您自己的基于文件的页面模板中添加-在产品上。

于 2012-05-21T12:05:29.960 回答
0

您在script标签中的语法不正确。试试这个:

jQuery(function($) {
    $( "input:submit, a, button", ".demo" ).button();
    $( "a", ".demo" ).click(function() { return false; });
})($);​
于 2012-05-20T18:49:04.320 回答
0

是的,您可能需要允许如上所述的脚本标签,但是在我用 $ 符号替换单词 jQuery 之前,该示例仍然对我不起作用,至少在 Plone 4.2.1.1 上使用collective.js.jqueryui 1.8.16.9 时.

<script>
    $(function() {
        $( "#progressbar1" ).progressbar();
        $( "#slider" ).slider();
        $( "input:submit, a, button", ".demo" ).button();
        $( "a", ".demo" ).click(function() { return false; });
     });
 </script>

将 ($) 放在上面一行的分号之前也可以,但我看不出有什么区别。

即使脚本包含在“讨厌的标签”列表中,该脚本也适用于文件系统页面模板。此外,可以在页面模板中使用以下内容将脚本插入文档的头部:

<metal:slot fill-slot="javascript_head_slot">
<script>
    $(function() {
        $( "#slider" ).slider();
        $( "#progressbar1" ).progressbar();
        $( "input:submit, a, button", ".demo" ).button();
        $( "a", ".demo" ).click(function() { return false; });
    });
</script>
</metal:slot>

(我很想知道是否有更合适的前缀,但我真的不知道 javascript。)

于 2012-11-19T01:11:47.253 回答
0

我刚刚遇到了一个类似的问题,试图让我的脚本和 jquery UI 与 plone/zope 设置一起工作。解决方案是在 javascript 注册表 (/portal_javascripts) 中注册它们。脚本本身被添加到 /portal_skins/custom 中,这也是我正在处理的主页所在的位置。如上所述,脚本标记已从源中过滤掉,而是自动添加来自注册表的脚本。还要记住,顺序在 javascript 注册表中很重要。

希望这对遇到此问题的其他用户有所帮助。

于 2013-02-05T02:23:12.213 回答