代码之家  ›  专栏  ›  技术社区  ›  Pickels

jQuery插件:限制对其他库的脚本标记引用

  •  0
  • Pickels  · 技术社区  · 14 年前

    我正要创建一个jQuery插件,但我正在考虑使用其他一些库。为了便于使用,我想知道是否有方法限制我必须添加的脚本标记引用的数量。

    我在考虑的几个选择:

    1:在插件代码中包含库代码。不确定这是否可行?它将增加插件的大小。

    他说:我刚读到关于google.loader的文章,所以对它还不太了解。似乎是一种使用Google API从代码内部加载库的方法。但它确实需要一个API密钥,所以这可能不适合所有人。

    那么StackOverflow,你如何处理这个问题?

    1 回复  |  直到 14 年前
        1
  •  1
  •   David Hellsing    14 年前

    我不会包含插件内部的其他库,没有人想使用一个插件,它隐藏了外部库,可能会破坏主程序。

    如果您正在寻找一种不需要手动添加脚本标记就可以包含脚本的方法,那么可以尝试使用closure/google或YUI中的jQuery.loadScript或任何等效方法。

    下面是我曾经使用过的另一个非常有效的简单方法:

    function loadScript( url, callback ) {
        var done = false,
            script = document.createElement('script');
    
        script.src = url;
        script.async = true;
    
       // Attach handlers for all browsers
       script.onload = script.onreadystatechange = function() {
           if ( !done && (!this.readyState ||
               this.readyState == 'loaded' || this.readyState == 'complete') ) {
               done = true;
    
               if (typeof callback == 'function') {
                   callback.call( window, script );
               }
    
               // Handle memory leak in IE
               script.onload = script.onreadystatechange = null;
           }
       };
    
       var s = document.getElementsByTagName( 'script' )[0];
       s.parentNode.insertBefore( script, s );
    };