我正在开发Dnn模块,我在一些模块中使用jQuery,我将jQuery引用添加到每个ascx文件的顶部,方式是当用户将多个模块添加到每次引用的页面时当添加模块时,这种情况会给出一些错误,当我从模块的引用中移除,这是另一个模块的底部,它们都使用jQuery,它们工作良好,有没有办法阻止多重引用jQuery?我的意思是,如果它在页面引用befeore它不会再引用。谢谢。防止jQuery多重参考
3
A
回答
6
你可以做小的脚本,以检查是否jQuery是出现在页面上,且仅当不存在,加载它:
// 'load-jquery.js'
window.onload = function() {
if (window.jQuery === undefined) {
var script = document.createElement('script');
script.src = 'path/to/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(script); // load jQuery
}
};
2
如果你是在高冲突环境中加载了jQuery,试试命名空间jQuery。
SOMETHING = {
jQuery: jQuery,
$: $
}
然后通过SOMETHING $或SOMETHING.jQuery调用jQuery。只要记得在你想要的jQuery版本加载后立即执行命名空间,否则你最终会得到错误的结果。如果你有权访问jQuery文件,最简单的方法是在文件末尾附加名称空间代码。
3
如果你使用DNN 5.x,你应该使用DNN核心的jQuery版本,通过调用DotNetNuke.Framework.jQuery.RequestRegistration()
。
如果您只处理自己模块中的冲突,则可以在代码中添加脚本,然后检查它是否已被添加。我们手动将jQuery添加到头文件中(创建一个通用的HTML控件,并将其添加到Page.Header.Controls
),然后致电Page.ClientScript.RegisterClientScriptBlock()
创建一个脚本块以调用jQuery.noConflict
(以便它不会干扰DNN的JavaScript内容)。然后,您可以将整个调用包装为在调用Page.ClientScript.IsClientScriptBlockRegistered()
时添加jQuery,以便只添加一次。
相关问题
- 1. c#结构参考以防止复制
- 2. 防止访问处置的参考
- 3. 防止多重评分
- 4. jQuery - 防止太多递归
- 5. 多次防止jQuery着火
- 6. jQuery的防止多选择在多选
- 7. 终止符参考
- 8. 防止与jQuery
- 9. JavaScript + jQuery参考
- 10. 防止重复jquery选项卡
- 11. 如何防止我的jQuery库重叠?
- 12. jQuery Mobile的防止浏览器重装
- 13. 如何防止重复发送ajax jQuery?
- 14. 防止多重图像选择使用jQuery imgAreaSelect
- 15. 多参考
- 16. 防止多线程重复记录
- 17. 防止活动的多重实例化
- 18. 如何在Android中防止多重Dex
- 19. mod_rewrite的 - 防止多重定向
- 20. C++多重继承防止钻石
- 21. 防止网页上的多重滚动
- 22. 如何防止mod_rewrite多次重写URL?
- 23. jQuery的防止多个AJAX调用
- 24. jquery防止插件的多个实例
- 25. JQuery - 防止触发多个事件
- 26. 如何防止jquery追加多次
- 27. 防止jQuery post请求触发多次
- 28. 防止jquery被多次引用?
- 29. 防止返回值参考的拷贝构造和赋值
- 30. 内部参考可以防止垃圾收集