Javascript 如何使用两个不同的jQuery版本,其中一个版本由Chrome扩展注入?

Javascript 如何使用两个不同的jQuery版本,其中一个版本由Chrome扩展注入?,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,情境:我写了一个Chrome扩展,为一个网站添加了非常不同的功能。在我的代码中,几乎所有地方都在使用JQuery,因为我所做的工作需要更多的原生JS代码。我的jQuery版本仅列在清单中的内容脚本下 问题:我的扩展所针对的网站本身已经注入了一个非常旧的JQuery版本,并且他们的很多脚本都依赖于它。他们使用中的普通脚本标记注入它。现在,我想对扩展中的所有脚本使用我自己的jQuery版本(较新版本),而站点脚本应该仍然使用它们的旧版本。基本上,我希望我的jQuery版本与他们的完全分离,但我无法让

情境:我写了一个Chrome扩展,为一个网站添加了非常不同的功能。在我的代码中,几乎所有地方都在使用JQuery,因为我所做的工作需要更多的原生JS代码。我的jQuery版本仅列在清单中的内容脚本下

问题:我的扩展所针对的网站本身已经注入了一个非常旧的JQuery版本,并且他们的很多脚本都依赖于它。他们使用
中的普通脚本标记注入它。现在,我想对扩展中的所有脚本使用我自己的jQuery版本(较新版本),而站点脚本应该仍然使用它们的旧版本。基本上,我希望我的jQuery版本与他们的完全分离,但我无法让它工作。每当我从任何内容脚本调用jQuery时,它都会使用注入站点的旧版本,而不是内容脚本中的新版本

我尝试使用jQuery的noConflict(可能使用与$不同的快捷方式),但当我使用扩展名将脚本附加到带有$.noConflict(true)的文档中时,该站点版本的jQuery使用noConflict,它们的所有脚本都会中断,因为$不再对它们可用

我知道在同一个页面上加载两个版本的jQuery从来都不理想,但我的代码需要更新的jQuery,而且由于代码原因,我无法强制站点脚本使用更新的版本

有没有一种方法可以告诉jQuery在注入时使用noConflict


或者有一种方法可以完全分离较新的jQuery,并告诉扩展不要使用注入站点的扩展?

您可以将
noConflict
语句附加到jQuery脚本本身。@Bergi我在哪里可以这样做?我试过了,但总是出错。只需编辑包含jQuery代码的脚本文件。你说的是jQuery源代码,对吗?比如这里:我现在在哪里添加noConflict?您不需要将脚本附加到DOM中,因为内容脚本已经运行良好,与页面完全隔离,因此您可以按原样使用jQuery,而无需noConflict。