【问题标题】:Sitefinity Script ConflictsSitefinity 脚本冲突
【发布时间】:2013-01-12 22:15:19
【问题描述】:

我正在努力让我的 jquery 在 Sitefinity 中保持有序。将 Sitefinity 小部件拖到页面上会破坏我母版页中的脚本链接。

Sitefinity 论坛上已开始讨论:http://www.sitefinity.com/developer-network/forums/developing-with-sitefinity-/how-to-adjust-around-sitefinity-scripts#S2PcF40QrkClp_vEDb6cqg

任何帮助将不胜感激。我不能是唯一遇到这个问题的人......

提前谢谢你,

【问题讨论】:

    标签: sitefinity sitefinity-5


    【解决方案1】:

    使用 sf:resourcelinks 确保加载 jQuery 时 Sitefinity 和 RadControls 之间没有冲突。

    <sf:resourcelinks id="ResourceLinks1" runat="server">
        <sf:ResourceFile JavaScriptLibrary="JQuery" />
    </sf:resourcelinks>
    

    使用 asp:scriptmanager 代替 radscriptmanager。

    使用JavascriptEmbedControl在固定位置加载脚本,以确保在混合匹配加载外部和内联脚本时文件加载

    <sf:JavaScriptEmbedControl
        id="script1"
        runat="server"
        scriptembedposition="InPlace"
        url="somescript.js" 
    />
    

    有关加载 jQuery 的最佳方式的更多信息,请查看forum thread。并在使用 JavascriptEmbedControl icw VisualStudio 时阅读 here 以获取免责声明。

    【讨论】:

    • 此代码是否仍与 Sitefinity 9.2 版相关?我正在开发一个新网站,并且遇到了与 2013 年在这里遇到的同样的问题。:/ 即使我的 Foundation 脚本安装在 Feather 中,我也无法正常工作......如果我了解如何羽毛工作。
    【解决方案2】:

    您可以使用 jQuery noConflict() 来解决您的情况。

    加载您的 jQuery 文件,然后包含依赖于该版本 jQuery 的所有库。

    Example:
    
    include jQuery 1.11
    include Bootstrap jQuery plugin
    include Response.js
    so on.,
    

    当所有依赖库一个接一个地添加到你的 jQuery 版本之下时......当前 $ 范围内的 jQuery 版本将用于初始化库。因此,您的依赖库将按预期使用 jQuery 版本被包含/增强。 万岁!!

    最后,为了让 Sitefinity RAD 控件和小部件在 CMS jQuery 版本中正常工作,您需要将 jQuery 对象完全移动到其他变量名称,如下所示。

    jq1_11 = $.noConflict(true);
    

    然后在您的自定义脚本中使用 jq1_11 而不是 $ 或 jQuery。

    如果你仍然喜欢使用 $,那么使用下面的匿名函数遵循闭包模式。

    (function($){
         $("#id").on("click", handlerFn);
    })(jq1_11);
    

    缺点: 有些人会抱怨使用 2 个版本的 jQuery,但这只会发生在

    内联编辑或 当 RAD 控件在页面中或 在 sitefinity 后端

    优势: 您可以使用最新的库和最新的 jQuery

    【讨论】:

    • 我知道这个解决方案不会让@maria受益,因为为时已晚,但我认为我应该在这里注册一个替代解决方案
    • 谢谢@david-g-chelliah!无论何时,您的额外输入都会有所帮助。 :)
    猜你喜欢
    • 2014-03-02
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多