果园和编辑页面 - 添加脚本

时间:2015-02-11 09:59:02

标签: orchardcms

我可以通过仪表板向页面添加脚本(通过将页面内容项编辑为html)。该脚本被添加到页面并进行评估,但过早 - 尚未加载任何脚本(例如,jQuery)。

我不想将脚本添加到Layout,因为为所有页面添加此脚本没有任何意义。

有没有办法通过仪表板将脚本添加到单个页面的内容中,以便可以正确评估它?

或者我应该创建一个包含特殊内容部分的单独模块(包含视图/形状的正确脚本),并将该部分添加到自定义ContentType(还包含BodyPart和其他人例如Page内容项目)?

或者我应该以交互式部件是小部件的方式分隔整个内容,而不应在Page内容项中进行编辑?

3 个答案:

答案 0 :(得分:0)

您可以将脚本文件添加到html内容的顶部,如下所示:

<p>
<script type="text/javascript" src="/*path of the file*/">// <![CDATA[

// ]]></script>
</p>

添加步骤:Dashboard-&gt; Content-&gt;打开特定页面 - &gt; Html源代码编辑器 - &gt;在顶部用脚本文件路径添加上述脚本。

答案 1 :(得分:0)

您可以使用Script.Foot()扩展方法吗?

@using(Script.Foot()) {

...     }

Using jQuery from Orchard module page

答案 2 :(得分:0)

我建议为你的脚本添加一个部分,例如:

public class CustomScriptPart : ContentPart<CustomScriptPartRecord>
{
    public bool AtFoot
    {
        get { return Record.AtFoot; }
        set { Record.AtFoot = value; }
    }
    public string Script
    {
        get { return Record.Script; }
        set { Record.Script = value; }
    }
}

查看/零件/ CustomScript.cshtml

@if(Model.AtFoot) {
    using(Script.Foot()) {
        <script type="text/javascript">
            @Model.Script
        </script>
    }
} else {
    <script type="text/javascript">
        @Model.Script
    </script>
}

但范德莱工业公司可能已经做过类似的事了。