Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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
Javascript 我可以将jQuery动态加载到局部变量而不是窗口吗?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 我可以将jQuery动态加载到局部变量而不是窗口吗?

Javascript 我可以将jQuery动态加载到局部变量而不是窗口吗?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在开发一个小部件来实现类似于“Zopim”的实时聊天。要修改我的小部件所在页面的DOM,我希望使用jQuery,但我希望这样做不会污染宿主页面的全局名称空间 我怎样才能做到这一点呢?使用jQuery.noConflict(true) noConflict(true)将从全局范围中删除所有jQuery变量 使用jQuery.noConflict(true) noConflict(true)将从全局范围中删除所有jQuery变量 步骤 检查是否定义了window.jQuery。如果它是并且匹配您

我正在开发一个小部件来实现类似于“Zopim”的实时聊天。要修改我的小部件所在页面的DOM,我希望使用jQuery,但我希望这样做不会污染宿主页面的全局名称空间


我怎样才能做到这一点呢?

使用
jQuery.noConflict(true)

noConflict(true)将从全局范围中删除所有jQuery变量


使用
jQuery.noConflict(true)

noConflict(true)将从全局范围中删除所有jQuery变量

步骤

检查是否定义了
window.jQuery
。如果它是并且匹配您需要的版本(
jQuery.fn.jQuery
),请使用该版本

否则,加载jQuery并使用
noConflict(true)
分配给另一个变量,并在第页的步骤中维护任何现有的
$

检查是否定义了
window.jQuery
。如果它是并且匹配您需要的版本(
jQuery.fn.jQuery
),请使用该版本


否则,加载jQuery并使用
noConflict(true)
分配给另一个变量,并维护页面

@KevinB中的任何现有
$
,我认为是这样,并且必须进入源代码,因为在jQuery分配
$
然后是noConflict(true)之前,我从未停止过计算
$
被分配给
能把它映射回去吗?是的,我记得src的那个部分,非常聪明。基本上保留了以前的副本,这样您就可以使用noConflict将其还原回来。如果包含
true
参数,window.jQuery也会这样做。@KevinB我这么认为,并且必须进入源代码,因为在jQuery分配
$
之前,我从来没有停下来找出
$
被分配到
\u$
,然后没有冲突(true)可以将其映射回来是的,我记得src的一部分,非常聪明。基本上保留了以前的副本,这样您就可以使用noConflict将其还原回来。如果包含
true
参数,则window.jQuery也会这样做。