【问题标题】:How to use javascript(js file) in Orchard CMS如何在 Orchard CMS 中使用 javascript(js 文件)
【发布时间】:2011-10-31 20:35:25
【问题描述】:

谁能告诉我如何在 Orchard CMS 中使用 js 文件?我将它添加到 Layout.cshtml 页面 Script.include("jquery.js").

【问题讨论】:

    标签: javascript asp.net asp.net-mvc asp.net-mvc-3 orchardcms


    【解决方案1】:

    如果您安装并启用了 Orchard.jQuery 模块,则在视图顶部使用:

    Script.Require("jQuery")
    

    查看 Orchard.jQuery 项目中的 ResourceManifest 类(应该在您的 Orchard 解决方案文件中),在那里您可以看到使用此语法可以包含的所有不同 jQuery 模块(例如 jQueryUI_Core、@987654323 @等)

    例如

     manifest.DefineScript("jQueryUI").SetUrl("jquery-ui.min.js", "jquery-ui.js").SetVersion("1.9.2").SetDependencies("jQuery")
                    .SetCdn("//ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.min.js", "//ajax.aspnetcdn.com/ajax/jquery.ui/1.9.2/jquery-ui.js", true);
    

    【讨论】:

      【解决方案2】:

      要想有一个很好的例子,请寻找模块 ContentPicker。这带有默认的 Orchard 源代码。它展示了如何使用 Script.Require("MyScript")。 JQuery 模块本身就是一个很好的例子。该模块还带有默认源代码。

      注意:我指的是 Orchard 1.7 及更高版本

      【讨论】:

        【解决方案3】:

        你可以做到这一点。

        第一种方法就像 mdm 描述的那样:

        1. 创建您自己的 IResourceManifestProvider 接口实现(查看 Orchard 源代码 - 它已在许多模块中实现),实现 BuildManifests(ResourceManifestBuilder builder) 方法并为给定的 .js 文件创建命名资源
        2. 在 Razor 视图文件 (.cshtml) 中使用 @{ Script.Require("[your resource name]"); } 以包含该脚本。

        如果您有许多脚本文件,并且它们之间可能存在依赖关系,这是首选解决方案。它允许您为每个脚本文件指定依赖项,并让 Orchard 处理其余部分(因此当您引用给定资源时,所有依赖项也将自动以正确的顺序引用)。

        第二种更简单的方法是直接引用 .cshtml 文件中的 .js 脚本文件,而不创建命名资源。如果您想快速添加对单个脚本的引用,这很有用。像这样(示例取自 Orchard.Web\Core\Shapes\Views\Document.cshtml):

        @{ Script.Include("html5.js").AtLocation(ResourceLocation.Head); }
        

        【讨论】:

        • 您可以在 \Orchard.Web\Modules\Orchard.Tags\ResourceManifest.cs 中看到一个很好的示例,其中定义了样式和脚本。
        • 如果页面是通过 Orchard CMS 管理功能创建的,您将如何执行此操作?在这种情况下,没有 Razor 视图文件(是否存在)?
        【解决方案4】:

        这有点作弊,但您可以将其添加到布局或文档文件中。

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
        
        <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js" type="text/javascript"></script>
        

        【讨论】:

        • 作弊是的,但最好通过Script.Include(""); 来完成,因为如果通过不同的视图引用了多个,Orchard 只会加载一个。
        • 您在执行此类操作时可能会遇到问题。例如,您的测试环境无法访问互联网。您确实应该将所需的一切都包含在您的解决方案中。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多