kaspar: window.onload aus anderem Frame heraus

Hallo,

ich muss Euch wieder einmal mit einer Frage belästigen:

Ich versuche, ein Script in einem anderen Frame erst dann zu starten, wenn dieser geladen ist - eine alte Geschichte. Meine Lektüre der verschiedensten Artikel zum Thema hat mich zu folgendem Schluss kommen lassen.

Zunächst gebe ich im Ursprungsframe folgende Funktion mit Parametern an:

<body onLoad="parent.Framename.window.onload = new Function('parent.Framename.starten('c1-hd-1','52')');">

Im eingebundenen Script des anderen Frame werden dann über diese Funktion zwei andere aufgerufen:

function starten(var1,var2)
{
   aktivieren(var1);
   pfAktivieren(var2);
}

Problem: Funktioniert auf Netscape 4.7 sehr gut, auf IE 5.5 aber überhaupt nicht. Was habe ich übersehen/falsch gemacht?

Dank im voraus für Tipps:

kaspar

  1. Du kannst auch einfach im <frameset onLoad=""> sagen, das wird auch erst nach laden aller Frames gestartet.

    Hope that helps

    Marcus

    1. Du kannst auch einfach im <frameset onLoad=""> sagen, das wird auch erst nach laden aller Frames gestartet.

      Hope that helps

      Marcus

      Hallo Marcus,

      danke für Deinen Tipp, ein interessanter Vorschlag. Das wäre, wenn man nur einen konstanten Wert bei den Parametern hätte, evt. eine Lösung. Leider hängt dieser Wert aber vom aufgerufenen Ursprungsframe ab, ändert sich also ständig.

      Weitere Vorschläge? :-)

      Dank und Gruß

      kaspar

  2. Ich versuche, ein Script in einem anderen Frame erst dann zu starten, wenn dieser geladen ist - eine alte Geschichte.
    Zunächst gebe ich im Ursprungsframe folgende Funktion mit Parametern an:

    <body onLoad="parent.Framename.window.onload = new Function('parent.Framename.starten('c1-hd-1','52')');">

    Im eingebundenen Script des anderen Frame werden dann über diese Funktion zwei andere aufgerufen:

    function starten(var1,var2)
    {
       aktivieren(var1);
       pfAktivieren(var2);
    }

    Problem: Funktioniert auf Netscape 4.7 sehr gut, auf IE 5.5 aber überhaupt nicht. Was habe ich übersehen/falsch gemacht?

    Eigene Amtwort nach Konsultation der Kollegen und ggf. für das Archiv:
    onLoad="parent.Framename.window.onLoad = eval('parent.mainmenu.starten('c1-hd-1','52')');"

    1. sollte man auch das zweite onLoad und gerade dieses mit großem L schreiben.
    2. statt new Function eval benutzen und alle lästigen setTimeout und Intervallüberprüfungen sind überflüssig.

    Gruß: kaspar