小编典典

我可以在同一页面上使用多个版本的 jQuery 吗?

all

我正在进行的一个项目需要在客户的网页上使用 jQuery。客户将插入一段我们将提供的代码,其中包括一些在-
created<script>中构建小部件的元素。如果他们还没有使用最新版本的 jQuery,这也将包括(很可能)用于 Google 托管版本的
jQuery。<script>``<iframe>``<script>

问题是一些客户可能已经安装了旧版本的 jQuery。虽然如果它至少是一个相当新的版本,这可能会起作用,但我们的代码确实依赖于 jQuery
库中最近引入的一些功能,所以当客户的 jQuery 版本太旧时,肯定会出现这种情况。我们不能要求他们升级到最新版本的 jQuery。

有没有办法加载更新版本的 jQuery 以仅在我们的代码上下文中使用,而不会干扰或影响客户页面上的任何代码?理想情况下,也许我们可以检查 jQuery
的存在,检测版本,如果它太旧,然后以某种方式加载最新版本以用于我们的代码。

我有在<iframe>客户的域中加载 jQuery
的想法,其中还包括我们的<script>,这似乎是可行的,但我希望有一种更优雅的方式来做到这一点(更不用说没有额外<iframe>的 s)。


阅读 85

收藏
2022-03-16

共1个答案

小编典典

是的,由于 jQuery 的无冲突模式,它是可行的。http://blog.nemikor.com/2009/10/03/using-multiple-
versions-of-jquery/

<!-- load jQuery 1.1.3 -->
<script type="text/javascript" src="http://example.com/jquery-1.1.3.js"></script>
<script type="text/javascript">
var jQuery_1_1_3 = $.noConflict(true);
</script>

<!-- load jQuery 1.3.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.3.2.js"></script>
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>

然后,而不是$('#selector').function();,你会做jQuery_1_3_2('#selector').function();or
jQuery_1_1_3('#selector').function();

2022-03-16