Michael: Externes JavaScript durch onLoad-Handler laden?

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

  1. 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>';">

    1. 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

      --
      "Ironie ist keine Waffe, eher ein Trost der Ohnmaechtigen."  (Ludwig Marcuse; dt. Publizist u. Schriftsteller; 1894-1971)
      http://elektro-dunzinger.at
      http://shop.elektro-dunzinger.at
      1. 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

  2. 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.

    1. 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?