Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 防止jQuery多重引用_Asp.net_Jquery_Dotnetnuke - Fatal编程技术网

Asp.net 防止jQuery多重引用

Asp.net 防止jQuery多重引用,asp.net,jquery,dotnetnuke,Asp.net,Jquery,Dotnetnuke,我正在开发DNN模块,在一些模块中使用jQuery,我将jQuery引用添加到每个ascx文件的顶部,顺便说一句,当用户每次添加模块时都将多个模块添加到其引用的页面时,这种情况会出现一些错误,当我从使用jQuery的另一个模块的底部删除引用时,它们工作得很好,有没有办法防止多次引用jQuery?我的意思是如果它在页面上被引用,它就不会再引用了。谢谢。您可以制作一个小脚本来检查页面上是否有jQuery,只有当jQuery不存在时,才加载它: // 'load-jquery.js' window.o

我正在开发DNN模块,在一些模块中使用jQuery,我将jQuery引用添加到每个ascx文件的顶部,顺便说一句,当用户每次添加模块时都将多个模块添加到其引用的页面时,这种情况会出现一些错误,当我从使用jQuery的另一个模块的底部删除引用时,它们工作得很好,有没有办法防止多次引用jQuery?我的意思是如果它在页面上被引用,它就不会再引用了。谢谢。

您可以制作一个小脚本来检查页面上是否有jQuery,只有当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
  }
};

如果在高冲突环境中加载jQuery,请尝试使用名称空间jQuery

SOMETHING = {
    jQuery: jQuery,
    $: $
}

然后通过某物调用jQuery。$或某物.jQuery。只要记住,一旦加载了您想要的jQuery版本,就要执行名称空间,否则最终会得到错误的名称空间。如果您有权访问jQuery文件,最简单的方法是在文件末尾附加名称空间代码。

如果您使用的是DNN 5.x,则应通过调用
DotNetNuke.Framework.jQuery.RequestRegistration()
使用DNN核心版本的jQuery

如果您只处理自己模块中的冲突,则可以在代码中添加脚本,然后检查是否已添加该脚本。我们将jQuery手动添加到标头中(创建一个通用HTML控件,并将其添加到
Page.header.Controls
),然后调用
Page.ClientScript.RegisterClientScriptBlock()
,以创建一个要调用的脚本块(这样它就不会干扰DNN的JavaScript内容)。然后,您可以在对
Page.ClientScript.IsClientScriptBlockRegistered()
的调用中包装整个添加jQuery的调用,以便只添加一次