Matthias: Javscript pausieren bis seite im frame geladen ist

Hallo,
ich habe ein javascript, dass eine seite in einem frame lädt.
als nächstes wird auf diese neugeladene seite zugeriffen.
in der windowsumgebung funktioniert das ohne probleme, da die
ladezeit sehr kurz ist.
sobald ich aber die gleiche seite im internet aufrufe wird der
zweite befehl nich mehr ausgeführt. es wird die unbearbeitete
seite angezeigt. wie löse ich dieses zeitproblem ?
ich brauche also eine schleife oder ähnliches die meine zweite anweisung aufstoppt bis die erste ausgeführt ist.

Funktion(aufgerufen durch link):

Anweisung 1: Lade neue Seite in Frame

-------Hier müsste das Script stoppen bis die htmldatei geladen ist

Anweisung 2: Bearbeite neugeladene Seite

mfg,
matthias

  1. Hallo,
    ich habe ein javascript, dass eine seite in einem frame lädt.
    als nächstes wird auf diese neugeladene seite zugeriffen.
    in der windowsumgebung funktioniert das ohne probleme, da die
    ladezeit sehr kurz ist.
    sobald ich aber die gleiche seite im internet aufrufe wird der
    zweite befehl nich mehr ausgeführt. es wird die unbearbeitete
    seite angezeigt. wie löse ich dieses zeitproblem ?
    ich brauche also eine schleife oder ähnliches die meine zweite anweisung aufstoppt bis die erste ausgeführt ist.

    Funktion(aufgerufen durch link):

    Anweisung 1: Lade neue Seite in Frame

    -------Hier müsste das Script stoppen bis die htmldatei geladen ist

    Anweisung 2: Bearbeite neugeladene Seite

    mfg,
    matthias

    Ergänzung: Zur Zeit wird die funktion durch den link 2mal aufgerufen, ansonsten funktioniert es auch nicht in der windowsumgebung! die 2.anweisung wird ohne den erneuten aufruf nicht ausgeführt. bei diesem 2.aufruf der funktion wird jedoch nicht nocheinmal die seite geladen.

  2. Hallo Matthias

    Waerteschleifen sind in JS zweck- und nutzlos. Du mußt mit Events arbeiten:
    im aufgerufenen Frame den onLoad-Event dafür nutzen dem opener
    bescheid zu geben.

    Also prinzipiell und ungetestet sowas wie

    <body onload="opener.frameReady()">

    einfügen und die Function frameReady bereitstellen.

    Tschau
      Rolf

    1. Hallo Matthias

      Waerteschleifen sind in JS zweck- und nutzlos. Du mußt mit Events arbeiten:
      im aufgerufenen Frame den onLoad-Event dafür nutzen dem opener
      bescheid zu geben.

      Also prinzipiell und ungetestet sowas wie

      <body onload="opener.frameReady()">

      einfügen und die Function frameReady bereitstellen.

      Tschau
        Rolf

      hi,
      leider ist das nicht was ich suche. die funktion, muss von der anderen html datei aufgerufen werden :(  .
      ich muss also im frame der die seite aufruft auch abfragen ob diese geladen ist, damit der frame dann auf die neue seite zugreifen kann. habe das mal mit onload im link versucht, aber ging nicht.

  3. Hallo Matthias

    Frage: gehört die aufgerufene Seite
    a) zu deiner Domäne?
    b) zu deinen Seiten?

    Onload auf der aufgerufenen Seite ist die _einzige_ zuverlässige Lösung! Wenn a && b  gelten dann lass die aufgerufenen Seite dem opener mitteilen das sie soweit ist.

    Du kannst zwar per window.setInterval regelmäßig versuchen Onload vom Opener aus dynamisch zu setzen das funktionierte aber in meinen Tests nur in Mozi und IE.

    Vergleiche meinen Thread zum preloading von Webseiten
    Ende Dezember.

    Tschau
      Rolf

    PS: du könntest höchstens noch abfragen ob bestimmte Charakteristika einer vollständig geladenen Seite da sind, z.B. haben die Forumsseiten ganz unten einen Mailto-Link zu "selfhtml@teamone.de". Du könntest also
    das letzte element des von frame.document.links regelmäsig mit  setInterval abfragen.

    Aber
    1. könnten die Bilder nicht vollständig geladen sein (img.onLoad abfragen)
    2. macht das Testen mit verschiedenen Browsern bestimmt spass
    3. darfts du die Fehlerbehandlungen nicht vergessen.