在第三方js代码中使用jquery

时间:2011-05-21 06:40:19

标签: javascript jquery

首先,我是javascript的新手,所以这个问题可能很愚蠢。 我有一个要求,我会向其他网站提供一个js脚本,以包含在他们的网页中。

现在我的问题是我应该使用jquery还是普通的javascript.Will /可以jquery影响网站的其余功能。 另外,使用jquery而不是简单的javascript,我将获得什么好处。

我的要求是获取网站的所有图像,并对这些网站上的图像进行处理。

先谢谢。

3 个答案:

答案 0 :(得分:2)

我想说,如果处理不涉及jQuery,那么就不要使用它。

如果包含以下问题,您需要处理以下问题

  • 无法加载(出于网络原因
  • 与本地加载的其他版本冲突
  • 与本地加载的其他库发生冲突

所有问题都有解决方法/解决方案,但您必须实现每个问题的每一个。

如果您只需要查找页面中的所有图片,则可以使用.getElementsByTagName()方法

var imagelist = document.getElementsByTagName('img');

然后就此进行处理..

您可能需要在load事件中附加代码,以确保无论您的代码是什么,DOM都可以接受它。

适用于.addEventListener()的现代浏览器,而对于IE,则为.attchEvent()

你的脚本可能是这样的

(function(){ // wrap in a self-invoking function to avoid global name-space pollution

  // attach to the load event so out code runs once the page has loaded
  if (window.addEventListener) { // modern
    window.addEventListener('load', imageProcessor, false);
  }
  else if (window.attachEvent) { // IE
    window.attachEvent('onload', imageProcessor );
  }

  function imageProcessor(){
    // get all images
    var imagelist = document.getElementsByTagName('img');

    // loop the list of images to do something with each image
    for (var img = 0; img < imagelist.length; img++)
     {
       var currentImage = imagelist[img];
       // do processing on the currentImage which hold a reference to the image
     }
  }

})(); // do the self-invoking

演示http://jsfiddle.net/gaby/nXPzk/

答案 1 :(得分:1)

使用jQuery会更容易实现,主要是因为您希望能够将脚本分发到任何浏览器(而jQuery是一个跨浏览器库),但它确实有它的缺点。 如果它是您自己的项目,您自己的页面,您确切地知道加载/执行的内容和时间,但如果您将脚本提供给其他人,则必须至少考虑3个问题:

  1. 不同的图书馆冲突
    这可以使用jquery的noConflict方法解决,但我发现它在某些情况下失败了
  2. 相同的图书馆冲突
    假设用户已经加载了jQuery的X版本。你还要他加载Y版本,除了这个效率非常低的事实之外,它可能会导致不同jQuery版本之间发生冲突。
    有解决方法(检查jQuery是否存在并且如果不存在则异步加载它)但代码变得有点复杂。
  3. 代码大小
    当我想到第三方代码时,我在想......为了能够运行一个函数而加载几个kb,但如果你想使用jQuery,你可能会强迫使用你的脚本的人加载一个完整的库只是为了你的一个功能,而不是1-2 kb(如果用户连接速度缓慢,请说明其含义)
  4. 考虑到起起落落,这实际上取决于你在做什么,所以,正如Gaby aka G. Petrioli所说,“如果处理不涉及jQuery,那么就不要使用它。”

答案 2 :(得分:0)

JQuery比普通的javascript更方便。您不必担心跨浏览器兼容性(例如IE与Firefox与Chrome)。除非你想自己处理,否则我会建议使用javascript:)

您可以加载Jquery库,但这可能比您要查找的要重一点。此外,您需要从服务器获取库,这会增加另一个故障点(但是,如果您在自己的服务器上托管它,那么您将拥有更多控制权。)

TLDR:JQuery很方便。如果您有权访问它,那么您应该使用它。