Ringer: Schleifenprobleme

Hallo Zusammen,

ich habe ein Problem mit dem setTimeout-Befehl! Auf meiner Seite lade ich in einen verdeckten frame eine Seite und hole mir von dort Variablen! Welche ich dann an ein ActiveX-Control übergebe. Den Timeout brauche ich da das laden der Seite in den verdekten frame auch eine gewisse Zeit braucht und es daher manchmal Probleme mit der Übergabe gab.

Hier die funktionierende Variante:

function load (){
  document.all.activex.panel=parent.Auswahl.seite;
  parent.frames.verdeckt.location.href = parent.Auswahl.seite;
  setTimeout("timer()",100);
                }
function timer(){
  if (parent.verdeckt.test=="richtig")
         {
  var s=parent.verdeckt.var1.innerText;
  s=s+','+parent.verdeckt.var2.innerText;
  s=s+','+parent.verdeckt.var3.innerText;
  s=s+','+parent.verdeckt.var4.innerText;
  s=s+','+parent.verdeckt.var5.innerText;
  document.all.activex.fuellen=s;
  }
}

Nun will ich aber mehrere Seiten auslesen. Dazu habe ich eine for Schleife genutzt. Leider kann ich da aber den Timer nicht einbauen.

Problem:

function test()
{
  for (i=1;i<3;i++)
    {
   parent.frames.verdeckt.location.href="seite"+i+".html";
   setTimeout("timerzwei()",100);
                  }
function timerzwei(){
      if (parent.verdeckt.test=="richtig")
        {
        var s=parent.verdeckt.var1.innerText;
        s=s+','+parent.verdeckt.var2.innerText;
        s=s+','+parent.verdeckt.var3.innerText;
        s=s+','+parent.verdeckt.var4.innerText;
        s=s+','+parent.verdeckt.var5.innerText;
        document.all.activex.variable=s;
        }
      }
}

Das Problem ist das ich eine Funktion in ein for-Schleife stecke! Wenn ich die Funktion schließen will um den Timer zu nutzen schließe ich die for-Schleife! Also ich hoffe ihr versteht mein Problem. ich selbst bin mit meinen doch begrenzten Wissen am Ende!

Gruß

Ringer

  1. Sorry ist aber ein JavaScript Problem!

    Ringer

  2. Hi Ringer

    function test()
    {
      for (i=1;i<3;i++)
        {
       parent.frames.verdeckt.location.href="seite"+i+".html";
       setTimeout("timerzwei()",100);
                      }

    } /* Hier gehört die Klammer hin */

    function timerzwei(){
          if (parent.verdeckt.test=="richtig")
            {
            var s=parent.verdeckt.var1.innerText;
            s=s+','+parent.verdeckt.var2.innerText;
            s=s+','+parent.verdeckt.var3.innerText;
            s=s+','+parent.verdeckt.var4.innerText;
            s=s+','+parent.verdeckt.var5.innerText;
            document.all.activex.variable=s;
            }
          }

    /* } deine abschliessende Klammer muss weg */

    Das Problem ist das ich eine Funktion in ein for-Schleife stecke!

    Ja, das geht AFAIK nicht. Ich verstehe dein Problem nicht ganz. Die setTimeout-Funktion verhällt sich manchmal etwas seltsam, zumindest im IE 5.0. Versuch mal die Funktion timerzwei() direkt, dh. ohne setTimeout aufzuruffen und schau, ob es dann funktioniert. Und nimm die Funktion zu der Schleife raus, sowas ergibt keinen Sinn.

    MfG

    Tom2

    PS: Wenn du hier im Forum eine Nachricht schreibst und nicht direkt auf 'Nachricht absenden', sondern auf 'Vorschau generieren' klickst, dann kannst du u.A. den Themenbereich anpassen.

    --
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    ss:| zu:) ls:& fo:) de:] va:) ch:] sh:( n4:& rl:° br:> js:| ie:% fl:( mo:}