1

我不是纯 javascript 编码器,我想利用 JQuery。我正在为拥有许多属于其客户的子网站的客户进行分析。他想做一个报告功能,就像谷歌分析的功能一样,但更多的是满足他的定制需求。他创建的网站可能使用不同版本的 JQuery,甚至没有使用 JQuery。因此,我不能假设他实现的所有网站都使用 JQuery。所以这是我需要知道的,任何人都可以帮助我建议应该做什么:

  1. 我想创建一个外部 javascript 来使用纯 javascript 加载 Jquery(托管在 google 中)。我怎样才能做到这一点?
  2. 仅将加载的 Jquery 框架用于我的外部 javascript 文件,以便 JQuery 框架不会与网站可能调用的任何其他现有 Jquery 版本冲突。我怎样才能做到这一点?
  3. 使用这个创建的外部 javascript,可以将其放在我所有客户网站的头部,以便我可以跟踪分析。

我的客户不想使用谷歌分析,他有他的理由。希望听到您将如何建议实现您的功能。

4

2 回答 2

2

由于您的分析将依赖于特定的 jQuery 版本 - 您不能使用它所包含的站点中的那个。您需要在自己的脚本中加载所需的 jQuery。

jQuery 的$.noConflict可以使用多个版本的 jQuery 。

您的脚本应如下所示:

var script = document.createElement('script');
script.type = 'text/javascript';
//the url of the needed jquery
script.src = '//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js';
script.onload = script.onreadystatechange = function() { 
  var rs = this.readyState; 
  if (rs) {
    if ((rs != 'complete') && (rs != 'loaded')) {
      return;
    }
  }
  //after loading the jQuery - relinquish jQuery's control of the $ variable.
  var myQuery = $.noConflict(true);
  // alias loaded jQuery to a $ within the functions scope 
  myQuery(document).ready(function($) {
    // code here normally with the loaded jQuery using the $ variable
  });
}
//append the script into the document head
document.getElementsByTagName('head')[0].appendChild(script);

对于 $.noConflict 的其他用途,请查看 jQuery文档

于 2013-08-10T11:12:49.123 回答
-1
window.jQuery || document.write('<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"><\/script>')
于 2013-08-09T12:25:35.007 回答