首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sitefinity脚本冲突

Sitefinity脚本冲突
EN

Stack Overflow用户
提问于 2013-01-13 06:15:20
回答 2查看 1.1K关注 0票数 2

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

Sitefinity论坛上已经开始了一个主题:http://www.sitefinity.com/developer-network/forums/developing-with-sitefinity-/how-to-adjust-around-sitefinity-scripts#S2PcF40QrkClp_vEDb6cqg

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

先谢谢你,

EN

回答 2

Stack Overflow用户

发布于 2013-01-13 17:41:23

使用sf:resourcelinks链接确保在加载jQuery时Sitefinity和RadControls之间不会发生冲突。

代码语言:javascript
复制
<sf:resourcelinks id="ResourceLinks1" runat="server">
    <sf:ResourceFile JavaScriptLibrary="JQuery" />
</sf:resourcelinks>

使用asp:scriptmanager代替radscriptmanager。

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

代码语言:javascript
复制
<sf:JavaScriptEmbedControl
    id="script1"
    runat="server"
    scriptembedposition="InPlace"
    url="somescript.js" 
/>

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

票数 2
EN

Stack Overflow用户

发布于 2015-10-10 19:26:13

您可以使用jQuery noConflict()来解决您的问题。

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

代码语言:javascript
复制
Example:

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

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

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

代码语言:javascript
复制
jq1_11 = $.noConflict(true);

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

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

代码语言:javascript
复制
(function($){
     $("#id").on("click", handlerFn);
})(jq1_11);

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

内联编辑或当RAD控件位于页面或sitefinity后端时

好处:您可以使用最新的库和最新的jQuery

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14298485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档