Externes JavaScript durch onLoad-Handler laden?
Michael
- javascript
Hallo,
weiß jemand, ob es möglich ist ein externes Javascript durch den onLoad-Handler eines IMG-Tags zu laden?
Folgendes habe ich vergeblich versucht:
1. document.write('<script [...]></script>')
In diesem Fall wird das bereits geladene Dokument vollständig ersetzt.
2. document.createElement('script') [...] etc.
Funktioniert nicht zuverlässig (diverse Variablen werden nicht gesetzt; nicht nachvollziehbar weshalb)
3. <img id="oIMG" [...] onload="oIMG.outerHTML='<script [...]>'">
Das Bild wird zwar ersetzt, aber das externe Script wird nicht geladen.
Gibt es weitere Möglichkeiten?
Gruß
Michael
Vielleicht etwas genauer:
1.
<img src="meinbild.gif" onload="document.write('<script type=text/javascript src=meinscript.js></script>')">
2.
[...] onload="var oScript = document.createElement('script');
oScript.type = 'text/javascript';
oScript.src = 'http://images.auctionserver.de/menu/menu.js';
document.body.appendChild(oScript);">
3.
[...] id=oIMG onload="oIMG.outerHTML='<script type=text/javascript src=meinscript.js>';">
Hallo Michael,
Wie wäre es mit einer Recherche?
http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onload
Schon nach den ersten drei Zeilen weisst du, warum das so nicht funktionieren kann.
Gruß
Kurt
Hallo Kurt,
Wie wäre es mit einer Recherche?
Beherzige deine eigenen Ratschläge!
onLoad wird durchaus nach dem Laden eines Bildes aufgerufen.
Dies ist zwar nicht als Standard definiert:
http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.2
Funktioniert allerdings mindestens bei IE und Opera:
http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onload.asp
Falls es jemanden interessiert:
Die zweite Möglichkeit mittels .createElement funktioniert doch!
<img src="meinbild.gif"
onload="var oScript = document.createElement('script');
oScript.type = 'text/javascript';
oScript.src = 'http://meinrechner.de/meinscript.js';
document.body.appendChild(oScript);">
Allerdings kann anscheinend nicht auf alle im Script erstellten Objekte zugegriffen werden.
Näheres weiß ich aber auch nicht.
Jetzt weiß ich mehr:
Ein Script, welches per .createElement eingebunden wurde,
kann nicht per document.write in das Dokument schreiben!
Weiß jemand, warum das so ist?