Javascript 当页面上已经有旧版本时,如何在chrome扩展内容脚本中使用jquery
我正在写一个chrome扩展,它可以随意调整页面的布局。我想使用jQuery的最新版本来实现这一点 有问题的页面已经包含jQuery的1.4.4版作为其脚本的一部分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">
如果包含较新版本的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,它们不会相互冲突。”