【问题标题】:Two jQuery versions on the same page同一页面上的两个 jQuery 版本
【发布时间】:2009-07-13 01:54:29
【问题描述】:

是否可以在同一个文档中有 2 个不同的 jQuery 版本,并且让它们不相互冲突?

例如,如果我创建一个小书签并希望将代码基于 jQuery。 这个小书签被注入到使用另一个版本的 jQuery 的某个页面上,然后我的代码将覆盖页面上使用的版本。

可以避免吗? 或者是否有其他一些提供此功能的库 或者也许我应该重新考虑整个事情。

感谢您的回答和指点,

鲍勃

【问题讨论】:

  • 你可以在再次注入之前检查 jQuery 是否已经在页面上。
  • 你绝对应该重新考虑一下。您应该更新旧函数以使用新的 jQuery,包括两者都只是大量的膨胀和碰撞的愿望。
  • 您是否可以控制添加到页面中的 jQuery 版本?如果他们可以提供帮助,您不希望您的访问者必须下载另一个版本的库 - 这是一种不好的做法,并且会为访问者增加文档的文件大小。

标签: javascript jquery


【解决方案1】:

jQuery 提供了一种避免冲突的方法。加载第一个版本后,您可以将其分配给不同的变量。

var $j = jQuery.noConflict();

然后加载您的第二个 jQuery 版本。您加载的第一个可以使用 $j(...) 访问,而第二个可以使用 $(...) 访问。

另外,有人创建了little helper,试图让不同版本之间的切换更容易。

【讨论】:

  • bob 无法控制何时加载第一个版本,因为这是通过书市在第三方网站上发生的。您可以在通过 createElement('script') 添加较新版本之前调用 noConflct - 这将“升级”第 3 方站点。你能假设第 3 方代码兼容吗?
  • 借助版本助手,您可以随时在不同版本的 jQuery 之间来回切换。只需说 Versions.use('jquery', 'default') 或 Versions.use('jquery', 'latest') 在您添加它们以进行切换之后。如果他的代码使用的是最新版本而第三方网站不是,他只需确保在代码的开头和结尾正确设置版本。
【解决方案2】:

这是一种检测 JQuery 是否已经存在的方法:jQuery in widget

找出您的代码可以使用的最旧版本的 JQuery。如果当前版本太旧,则拒绝工作。只有少数人会错过,大多数使用 JQuery 的网站都是最新的..

【讨论】:

    【解决方案3】:

    为什么不只是为不同版本的 jquery 提供不同版本的 javascript,所以,查看页面上的版本并获取适用于该版本 jquery 的适当代码。

    这样会更安全,因为其他任何东西都可能非常脆弱,因为听起来您无法控制页面上的 jquery 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      • 2010-12-06
      相关资源
      最近更新 更多