Oliver Hunger: wiedermal: warten auf geladenen (php) iframe (mit gutem grund!)

Beitrag lesen

Entsprich dein geposteter Code dem, was du geändert hast?

tat er

Mein erstes Posting gilt nach wie vor: Warte auf das Laden nicht mit einer while-Schleife! Lass den Browser feststellen, dass die Seite fertig geladen wurde - mit onload.

BTW: Grundlagenwissen: onload feuert dann, wenn die Seite komplett inkl. aller enthaltenen Bilder, CSS, Javascripte etc. geladen wurde, nicht vorher! Ist also genau das, was du brauchst. Dir fehlt nur noch etwas Idee, um rauszufinden, wie du (ich würde es so nennen:) asynchron eine Schleife hochzählst.

danke, ja das mit onload war hilfreich.

das warten allerdings geht nicht nur mit onload, zumindest wüsste ich nicht, wie. ich muss ja irgendwas im onload machen, damit es im eigentlichen ablauf wieder weitergehen kann.

hab ich jetzt so gelöst, geht auch:

---

var mi = 0;
top.loaded = true;

var chk = window.setInterval("mnInit()", 10);

function mnInit()
 {
 if (top.loaded)
  {
  if (mi < mCtr)
   {
   top.loaded = false;
   getRef('frm').src='loadmenu.php?name='+lMenu[mi].name+'&nr='+lMenu[mi].nr+'&level='+lMenu[mi].level+'&i='+mi;
   mi ++;
   }
  else
   {
   window.clearInterval(chk);
   }
  }
 }

---

statt des interval timers könnte ich natürlich eigentlich auch die funktion durch das onload wieder aufrufen lassen. ok, ich glaub, jetzt hab ichs, was du gemeint hast ;-)

Im Prinzip gehts dir doch nur darum, in die Datenbank Zahlen von Null bis zu einem Wert reinzuschreiben.

NEIN! das war nur vereinfacht, um nicht den ganzen code reinzuschreiben, wie üblich ;-) rest s.o., es ging darum, im HINTGERGRUND (also ohne ein neues fenster aufzumachen, oder das aktuelle neu zu laden) daten aus der seite (wie immer sie dahin kommen, z.b. aber auch durch usereingabe) in eine datenbank einzutragen.

das geht jetzt auch endlich richtig,

vielleicht gibt es aber eine elegantere lösung, serverskripte im hintergrund zu starten, als diese. (ich habs auch mit document.script[0].src=... versucht, aber das geht nicht (wie auch das beispiel in selfhtml http://127.0.0.1/SelfHTML/javascript/objekte/htmlelemente.htm#script dazu zumindest im ie6 nicht richtig funkt. da kommt bei mir beim ersten mal auf englisch klicken die deutsche variante)

ausserdem bleibt eine frage offen: so wie in der ursprünglichen version hat doch wohl die while schleife ohne inhalt die aktualisierung des iframe und v.a. die ausführung der enthaltenen skripte blockiert. sehe ich das richtig? sonst hätte die schleife ja auch mal beendet werden müssen, wenn sich zwischenzeitlich die abbruchbedingung geändert hat.

danke,

oliver!