Julius: Abfrage ob Graphik schon da :-)

Hallo,
Ich hätte da 2-Fragen, bei denen ich nicht weiter komme :-(
1.:Ich habe ein Frameset, wobei ich aus einem Frame, die Bilder des anderen Frames ändere (mit JS). Je nach Netzwetter, kann es sein, daß er die Graphik schon ändern möchte, obwohl sie (im anderen Frame) noch gar nicht da ist. Kann man eine Warteschleife in JS programmieren, die wartet bis das andere Frame (oder dessen Objekte) fertig geladen ist.
2.:Wie kann man aus einem Frameset eigene Funktionen aus einem anderen Frame dort ausführen. (evtl mit dem Function- Objekt)
       vielen vielen Dank Julius

  1. Hallo Julius,

    Kann man eine Warteschleife in JS programmieren, die wartet bis das andere Frame (oder dessen Objekte) fertig geladen ist.

    Du kannst Befehle davon abhaengig machen, ob eine Grafik geladen ist oder nicht:

    if(document.images[i].complete == true)
      /* .... hier die abhaengigen Befehle ... */

    Wenn so ein Befehl in einer Funktion steht, die sich im else-Zweig der gleichen Abfrage mit window.setTimeout nach einer Weile, also z.B. nach 1 Sekunde, selbst wieder aufruft, koennte es klappen.

    Wie kann man aus einem Frameset eigene Funktionen aus einem anderen Frame dort ausführen.

    Da gibt's was, aber ich komm jetzt nicht drauf...

    Viele Gruesse
      Stefan Muenz

    1. Hallo Julius,

      Wie kann man aus einem Frameset eigene Funktionen aus einem anderen Frame dort ausführen.

      Da gibt's was, aber ich komm jetzt nicht drauf...

      Ja, und zwar:

      in Frame1 mit dem Namen f1:
      ...
      function tu_dies(param) {...}
      ...

      in Frame2:
      ...
      parent.f1.tu_dies(param);
      ...

      Hoffentlich wird klar, was ich meine...

      Ciao, Felix

  2. 1.:Kann man eine Warteschleife in JS programmieren, die wartet bis das andere Frame (oder dessen Objekte) fertig geladen ist.

    Eine Alternative wäre vielleicht, in die Frame-generierende Seite (wo der Frameset notiert ist, also die hierarchich oberste Seite) so etwas wie folgende Funktion einzubauen:
    var alles_geladen = 0;
    function Frame_ist_fertig() {
       alles_geladen = 1;
    }
    Die zu überprüfende Seite müßte dann folgenden Zusatz im BODY-Tag bekommen:
    <BODY onLoad="top.Hauptframe_ist_fertig();">
    Anmerkung "onLoad"-Handler wird ausgeführt, wenn das Dokument komplett geladen wurde.

    Jetzt kann man den Ladezustand der Site mit folgender Function überprüfen:
    if (top.alles_geladen==1)
       mach_irgendwas();

    Aber Achtung: Wenn der Frameinhalt sich ändert und bei NS keine Größenänderung des Fensters erfolgt, bleibt dieser Wert (alles_geladen) bestehen, beim IE bleibt der Wert sowieso immer erhalten. Wird der Wert also auch abgefragt, wenn die Site gar nicht mehr geladen ist, muß entweder ein onUnload-Handler zugefügt werden oder irgendwie anders überprüft werden, ob die Site noch vorhanden ist (z.B. durch URL-Abfrage).

    2.:Wie kann man aus einem Frameset eigene Funktionen aus einem anderen Frame dort ausführen. (evtl mit dem Function- Objekt)

    Öhhm, ein Beispiel? Hast Du ansprechbare Objekte in dem anderen Frame? Läßt sich das nicht irgendwie über "parent.frames.Frame_Name.irgendeinObjektValue = x;" lösen?

    Viel Spaß aus Hamburg

    Paul