Hallo,
Ich hab' mal was "verrücktes" versucht, und lokal klappt es auch, leider nicht aber auf meinem lima-city.de Webspace.
das hört sich nach einer Timing-Geschichte an.
: : <head id="head"> <base href="http://matheplanet.com/matheplanet/nuke/html/latexrender/pictures/"> : : <script> innerBASE = document.URL; innerBASE = innerBASE.slice(0,innerBASE.lastIndexOf('/')+1); console.log(innerBASE); function initSRCs(wo,was,Datei){ var s = document.createElement(was); s.src = innerBASE+Datei; return document.getElementById(wo).appendChild(s); } initSRCs('head','script',"Arrays2.js"); initSRCs('head','script',"HilfsFunktionen.js"); </script> </head> : <!-- und einwenig body --> <script> initSRCs('Skizze','img',"Skizze.png").style="float:left;margin-right:1em"; : </script>
Dann folgt eine Menge html ohne Script's , und schließlich
<script> /* INITIALISIERUNGEN */ const Hilfen = document.getElementById('Hilfen'), HauptHint = document.getElementById('HauptHint'), EqLns = document.getElementById('EqLns'); document.addEventListener('DOMContentLoaded',INITIALISIERUNGEN); function INITIALISIERUNGEN(){ /* text neben Skizze */ mixWr(document.getElementById('BildA' ),mSms,[,mSA]); mixWr(document.getElementById('Bildabc'),mSms,[,mSa],[",",mSb],[",",mSc]); : : } </script>
aber mixWr, das in Datei "HilfsFunktionen.js" enhtalten ist, ist unbekannt.
Ja, das hätte ich erwartet. In deinem Initialisierungsscript im head-Element fügst du zwar zwei weitere script-Elemente ein, die darin referenzierte Javascript-Ressource wird aber erst verzögert geladen - mindestens mal um die durch Netzwerk und Server verursachte Totzeit.
Das Event DOMContentLoaded heißt ja nur, dass das DOM aus dem ursprünglich geladenen Dokument fertig aufgebaut ist. Eventuelle dynamisch ausgelöste Ergänzungen sind damit noch nicht berücksichtigt.
Oben, die Einfügung des Bildes "Skizze.png" klappt.
Klar. Das andere (das Einfügen der script-Elemente) klappt auch. Nur eben mit Verzögerung. Wenn du dir die Zeitabläufe mal in der Netzwerkansicht der Developer-Tools anschaust, wirst du vermutlich sehen, dass auch das Bild verzögert geladen wird. Aber das DOM-Objekt, auf das du mit Javascript zugreifst, ist sofort nach der Erzeugung da, auch wenn die Bilddaten erst etwas später nachgekleckert kommen. Ebenso sind auch die nachträglich erzeugten script-Elemente "sofort da", sie haben nur noch keinen Inhalt.
So long,
Martin
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy