Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 当页面上已经有旧版本时,如何在chrome扩展内容脚本中使用jquery_Javascript_Jquery_Google Chrome Extension - Fatal编程技术网

Javascript 当页面上已经有旧版本时,如何在chrome扩展内容脚本中使用jquery

Javascript 当页面上已经有旧版本时,如何在chrome扩展内容脚本中使用jquery,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我正在写一个chrome扩展,它可以随意调整页面的布局。我想使用jQuery的最新版本来实现这一点 有问题的页面已经包含jQuery的1.4.4版作为其脚本的一部分 如果包含较新版本的jQuery,页面将挂起。如何包含jQuery的最新版本,使其仅对我的内容脚本可用,而不影响页面上已有的脚本?您可以通过使用其名称空间并在闭包中执行代码来命名不同的jQuery版本。例如: <script src="jquery-1.6.2.min.js" type="text/javascript">

我正在写一个chrome扩展,它可以随意调整页面的布局。我想使用jQuery的最新版本来实现这一点

有问题的页面已经包含jQuery的1.4.4版作为其脚本的一部分


如果包含较新版本的jQuery,页面将挂起。如何包含jQuery的最新版本,使其仅对我的内容脚本可用,而不影响页面上已有的脚本?

您可以通过使用其名称空间并在闭包中执行代码来命名不同的jQuery版本。例如:

<script src="jquery-1.6.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
    jq162 = jQuery.noConflict(true);
    (function ($) {
        $(function () {
            // Your document ready code here
        });
    })(jq162);
</script>

jq162=jQuery.noConflict(true);
(函数($){
$(函数(){
//这里是您的文档就绪代码
});
})(jq162);

请注意,此声明使
jq162
可用于全局范围,以便在其他地方重用。如果您希望在本地限定jQuery实例的范围,请将其设置为
var

如果将jQuery作为内容脚本注入,则无论父页面使用什么,都不会有任何冲突。

通过将参数
true
传递给
noConflict()
,根据我对文档的理解,它恢复了
$
jQuery
变量的原始范围。也就是说,在使用上述调用时,如果我不清楚,您的问题的答案是“否”。xD(需要咖啡因…)谢谢。原来我的问题是别的,内容脚本是沙盒的,但这个答案还是有用的。实际上,您可以将代码缩短为:
jQuery.noConflict(true)(函数($){/*documentready*/})“例如,内容脚本可以包含JQuery v1,页面可以包含JQuery v2,它们不会相互冲突。”