2010-11-23 4 views
0

jQuery 플러그인을 만들려고하고 있지만 다른 라이브러리를 사용하려고합니다. 이제는 사용하기 쉽도록 추가해야하는 스크립트 태그 참조의 양을 제한하는 방법이 있는지 궁금합니다. 내가 고려하고jQuery Plugin : 다른 라이브러리에 대한 스크립트 태그 참조 제한

몇 가지 옵션 :

1 : 플러그인 코드로 라이브러리 코드를 포함합니다. 이것이 가능한지 확실하지 않은가요? 그것은 플러그인의 크기를 증가시킬 것입니다.

2 : 저는 아직 google.loader에 대해 읽었으므로 아직 그것에 대해 많이 알지 못합니다. Google API를 사용하여 코드 내부에서 라이브러리를로드 할 수있는 것처럼 보입니다. API 키가 필요하지만 모든 사용자에게 해당되지는 않습니다.

그래서 StackOverflow,이 문제를 어떻게 처리합니까?

+0

내가 확실히 플러그인의 라이브러리 코드가 포함되어 있지,하지만 시간이 지남에 이상 유지할 :

는 여기에 내가 꽤 잘 작동 번을 사용되는 또 다른 간단한 방법이다. 스크립트 태그 참조의 양을 제한하기를 꺼려하는 이유는 무엇입니까? –

+0

대부분 사용하기 쉽고 좀 더 휴대하기 쉽다고 생각합니다. 아마도 jQuery UI, jQuery.tmpl 및 json2.js를 사용하여 사람들이 추가해야하는 추가 참조가 적어도 3 개 필요합니다. – Pickels

답변

1

나는 플러그인 내부의 다른 라이브러리를 포함시키지 않을 것이며, 아무도 메인 프로그램을 손상시킬 수있는 외부 라이브러리에 숨겨진 플러그인을 사용하려고하지 않습니다.

수동으로 스크립트 태그를 추가하지 않고 스크립트를 포함 할 방법을 찾고 있다면 jQuery.loadScript 또는 이와 유사한 메소드를 closure/google 또는 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); 
}; 
+0

감사합니다. – Pickels