2009-09-03 29 views
5

関数から外部Javascriptをドキュメントにロードする方法を知りたいと思います。関数呼び出し時に外部Javascriptをロードする

function loadDaFun() { 
    var script = document.createElement('script'); 
    script.src = '/path/to/your/script.js'; 
    script.type = 'text/javascript'; 
    var head = document.getElementsByTagName("head")[0]; 
    head.appendChild(script); 
} 

答えて

14

は、これは、1つの方法です。

+0

ありがとうございました!大きな助け – Ronal

+0

あなたは大歓迎です。 – seth

+0

タイプは必要ありませんが、違いはありません(途中) –

-2

はAJAXでそれを取得し、その後のeval()コード:

+0

eval()にセキュリティ問題があります – Evorlor

11

@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.'); }); 
関連する問題