2010-11-23 14 views
0

我即將創建一個jQuery插件,但我正在考慮使用其他一些庫。現在,它很容易使用,我想知道是否有方法來限制我必須添加的腳本標記引用的數量。jQuery插件:限制其他庫的腳本標記引用

幾個選項我正在考慮:

1:包括庫代碼到插件代碼。不確定這是否可行?它會增加插件的大小。

2:我剛剛閱讀了關於google.loader的內容,所以我現在還不知道很多。看起來像您可以使用Google API從代碼中加載庫的方式。它確實需要一個API密鑰,所以這可能不適用於每個人。

所以StackOverflow,你如何處理這個問題?

+0

我肯定不會包括在插件庫中的代碼,它不僅使插件胖,但難以維護隨着時間的推移。 爲什麼你不願意限制腳本標記引用的數量? – 2010-11-23 18:47:07

+0

我想它主要是關於使它更容易使用和更便攜。我想要使​​用jQuery UI,jQuery.tmpl和json2.js,這樣至少需要添加3個額外的引用。 – Pickels 2010-11-23 18:51:18

回答

1

我不會在插件中包含其他庫,也沒有人想使用一個隱藏包含可能會破壞主程序的外部庫的插件。

如果您正在尋找一種方法來包含腳本而無需手動添加腳本標記,那麼您可以嘗試使用jQuery.loadScript或任何來自閉包/谷歌或YUI的等效方法。

這是我用過一次的作品相當不錯另一個簡單的方法:

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); 
};