11

関数から外部Javascriptをドキュメントにロードする方法を知りたいです。

4

3 に答える 3

18

これは1つの方法です。

function loadDaFun() {
   var script = document.createElement('script');
   script.src = '/path/to/your/script.js';
   var head = document.getElementsByTagName("head")[0];
   head.appendChild(script);
}
于 2009-09-03T20:23:07.450 に答える
13

@sethの答えは完全に正しいですが、挿入された要素をDOMに残す必要はなく、scriptロードされた直後に削除できます。また、挿入されたスクリプトがいつ使用できるようになるかを知りたい場合もあります。 、たとえば、次のことができます。

function loadScript(url, completeCallback) {
   var script = document.createElement('script'), done = false,
       head = document.getElementsByTagName("head")[0];
   script.src = url;
   script.onload = script.onreadystatechange = function(){
     if ( !done && (!this.readyState ||
          this.readyState == "loaded" || this.readyState == "complete") ) {
       done = true;
       completeCallback();

      // IE memory leak
      script.onload = script.onreadystatechange = null;
      head.removeChild( script );
    }
  };
  head.appendChild(script);
}

使用法:

loadScript("http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js",
            function () { alert('jQuery has been loaded.'); });
于 2009-09-03T21:00:47.420 に答える
-3

AJAXで取得してから、コードをeval()します。

于 2009-09-03T20:28:22.570 に答える