2012-03-24 4 views
0

Ich möchte in der Lage sein, eine Javascript-Datei innerhalb einer WSF dynamisch zu laden. Es gibt keinen DOM Ich glaube nicht, aber wenn es gibt, kann ich versuchen, so etwas wie:dynamisch laden und entladen Javascript-Dateien in einer Windows-Skriptdatei (WSF)

function addJavascriptFile(filename) { 
    var file = document.createElement('script') 
    file.setAttribute("type", "text/javascript") 
    file.setAttribute("src", filename) 
} 

Nachdem Sie eine Funktion ausgeführt wird, könnte ich mit etwas entladen wie:

function removeJavascriptFile(filename) { 
var all = document.getElementsByTagName("script") 
for (var i = all.length; i >= 0; i--) { 
    if (all[i] && all[i].getAttribute("src") != null && all[i].getAttribute("src").indexOf(filename) != -1) 
     all[i].parentNode.removeChild(all[i]) 
    } 
} 

Weiß jemand, Wenn es etwas Äquivalentes gibt, ohne das DOM zu benutzen?

Antwort

0

Ich habe einen Weg gefunden, es zu tun, aber hoffentlich kommt jemand mit einer besseren Lösung vorbei. Ich werde meine eigene Frage beantworten, falls jemand auf dasselbe Problem stößt.

Da gibt es kein DOM, ich einfach eval(javascriptFileContents) den Inhalt der Datei und dann die Funktion Literal direkt aufrufen. wenn ich eine Datei wombat.js mit einem function (logger) {... innen Zum Beispiel habe:

var logger = ... 
var fn = eval(wombatJsContents); 
fn(logger); 

Es ist nicht schön und wahrscheinlich ein wenig gefährlich, aber es funktioniert. Ich hoffe, dass jemand einen besseren Weg finden wird. In der Zwischenzeit ...