Hallo,
ich komme einfach nicht weiter und hoffe sehr, dass ihr mir helfen könnt. Dabei scheine ich schon ganz nah vor der Lösung zu stehen, aber was ich auch mache, es will nicht funktionieren.
Ziel:
ich möchte das JS Framework jQuery in einer bereits geladenen HTML-Seite nachladen und für den weiteren Skriptverlauf verfügbar machen.
Ansätze:
ideal fänd ich, wenn es eine JavaScript Funktion gäbe, mit der man JavaScript Code von einer http-adresse laden und direkt ausführen könnte. Evtl. mit AJAX und eval?
Mein Ansatz war aber folgender:
ich erstellte ein script-HTML-Element, das ich nachträglich im head-Element verankerte. Allerdings scheint es nicht „gestartet“ zu werden. Erst wenn ich das Skript nochmals starte, wird es geladen und jQuery ist verfügbar.
Hier mal meine Code so weit:
javascript:
var prepare=function(){
alert("Callback: "+jquery)}
if (document.getElementById(‚jquery‘)) {
alert(„jQuery ist schon importiert“);
var jquery=document.getElementById(‚jquery‘);
} else {
var jquery=document.createElement(„script“);
jquery.type=„text/javascript“;
jquery.src=„js/jquery.js“;
jquery.id=„jquery“;
document.getElementsByTagName(‚head‘)[0].appendChild(jquery);
}
alert("jQuery Ergebnis: "+$(document));
Zur Erläuterung:
- als erstes wird eine Funktion definiert, die nach Laden des script-Tags ausgeführt werden soll
- wenn das jQuery-Scriptobjekt schon existiert, informiere den User und definiere nur seine Referenz
- wenn das jQuery-Scriptobjekt nicht existiert, erzeuge ein neues Scriptobjekt, verknüpfe es mit Quelle, Typ, ID und callback und füge es dem head als neues Kind hinzu.
Die Callback-Funktion des onload wird gar nicht aufgerufen. Das unterste Alert liefert erst ‚null‘ und nach dem zweiten Start erst das Dokument-Objekt.
Wie kann ich jQuery schon im ersten Durchlauf nutzen?
Danke für eure Ideen!
VG,
Michael