我正在从事的一个项目需要在客户的Web页面上使用jQuery。客户将插入我们提供的代码块,其中包括一些<script>元素,用于在<script>-created <iframe>中构建小部件。如果他们还没有使用最新版本的jQuery,这也将包括(很可能)谷歌的托管版本的jQuery的<脚本>。
问题是一些客户可能已经安装了较旧版本的jQuery。虽然如果它至少是最近的版本,这可能是可行的,但我们的代码确实依赖于jQuery库中最近引入的一些功能,因此一定会出现客户的jQuery版本太旧的情况。我们不能要求他们升级到最新版本的jQuery。
有没有办法加载一个更新版本的jQuery,只在我们的代码上下文中使用,而不会干扰或影响客户页面上的任何代码?理想情况下,也许我们可以检查jQuery的存在,检测版本,如果它太旧,那么以某种方式加载最新版本以供我们的代码使用。
我有在客户域的<iframe>中加载jQuery的想法,其中还包括我们的<脚本>,这似乎是可行的,但我希望有一种更优雅的方式来做到这一点(更不用说没有额外的<iframe>s的性能和复杂性的惩罚)。
是的,这是可行的,因为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();或jQuery_1_1_3(“#选择器”).function();。