JS-Filesource in JS-File dazuladen, aber ohne dafür ein DOM-Element zu erzeugen

  • Themenstarter Themenstarter Netzwerkidi
  • Beginndatum Beginndatum
N

Netzwerkidi

Hallo,

mal eine ganz dumme Frage: Ob und ggf. wie kann man eigentlich in einem Javascript-File Scriptsourcen wie z. B. die jQuery-Latest-Edition dazuladen, ohne dass man dafür extra DOM-Objekte generiert wie in diesem Beispiel von Stackoverflow?

Kann jemand eine gute, möglichst kostenlose Javascript-Testumgebung/Debugger empfehlen? Was verwendet ihr so?

Grüße
Netzwerkidi
 
Hi,

du könntest das gewünschte JS mittels Ajax anfordern. Der Server liefert einen String zurück, der mit Hilfe einer String-Methode von Sven Mintel ausgeführt wird.

Beispiel:
Code:
// Ajax-Kram
AJAXOBJ.onreadystatechange = function(){
  if((AJAXOBJ.readyState==4) && (AJAXOBJ.status==200)){
    ("<script>"+AJAXOBJ.responseText+"</script>").eval_js();
  }
}
// Restlicher Ajax-Kram
Bei AJAXOBJ handelt es sich um ein korrekt initialisiertes XHR-Objekt.

Inwieweit diese Vorgehen, dem auf stackoverflow vorzuziehen ist, ist fraglich. Ich würde doch die Methode mit dem Einhängen eines Script-Elements ins DOM bevorzugen.

Ciao
Quaese
 
Hai Quaese,

interessanter Ansatz, den ich mal weiter verfolgen werden. Allerdings kriege ich es im Moment nicht ans Laufen.

Grüße
 
Hi,

ich hab hier ein kleines Beispiel erstellt und hochgeladen.

Es wird die aktuellste jQuery-Datei angefordert und verfügbar gemacht. Getestet wird, indem das jQuery-Objekt geprüft wird.

Ciao
Quaese
 
Hallo Quase,

ich habe noch einmal über Thematik nachgedacht und bin zu dem Schluss gekommen, dass es gar keinen Sinn macht, ohne ein DOM-Element zu arbeiten, da man ja in JS überhaupt keine Libraries deklarieren kann.

Nur wenn man das könnte, wäre es sinnvoll, weil man ja nur mit der Einbindung von Libraries wie jQuery auch JS-Units autonom testen könnte, ohne dass eine DOM-"Laufzeitumgebung" automatisch dabei sein müsste, wenn ich das so richtig sehe.

Wenn ich also in einem JS-File eine Funktion testen will, die auf eine Funktion z. B. von jQuery zurückgreift, dann geht das nicht - außer zur Laufzeit, die dann wiederrum in einer DOM-Umgebung stattfindet.

Mit dieser Erkenntnis habe ich daraufhin noch einmal eine Ajax-freie-Version - wegen der benötigten Serverunterstützung - gegoogelt und bin wieder bei Stack Overflow fündig geworden mit dieser Lösung, die nur jQuery voraussetzt, und mit ein paar Zeilen mehr geht's auch ganz ohne jQuery :

Code:
var js = ["scripts/jquery.dimensions.js",  
          "scripts/shadedborder.js", 
          "scripts/jqmodal.js", 
          "scripts/main.js"];
var $head = $("head");
for (var i = 0; i < js.length; i++) 
  $head.append("<script src=\"" + js[i] + "\" type=\"text/javascript\"></scr" + "ipt>");

Die ganze Geschichte hat sich also summa summarum auf niente, nix, null, notting reduziert.

Grüße

Netzwerkidi
 
Zuletzt bearbeitet von einem Moderator:
Zurück