2009-09-03 8 views

Antwort

14

Dies ist ein Weg:

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

Vielen Dank! Große Hilfe – Ronal

+0

Gern geschehen. – seth

+0

Typ ist nicht notwendig, macht keinen Unterschied (nebenbei bemerkt) –

-2

es mit AJAX Get und dann eval() den Code.

+0

eval() hat Sicherheitsprobleme – Evorlor

11

Die @seth ‚s Antwort ist ganz richtig, aber Sie brauchen nicht auf die eingesetzten script Element auf dem DOM zu verlassen, können Sie es entfernen Sie einfach, nachdem es geladen wird, und auch Sie könnten wenn die wissen wollen eingefügt Skript ist bereit zu verwenden, zum Beispiel können Sie:

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

Verbrauch:

loadScript("http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js", 
      function() { alert('jQuery has been loaded.'); });