Avatar: setTimeout und NETSCAPE!

Hallo Leute

Folgendes Script läuft unter IE. Aber nicht unter Netscape.

if(fehler == ""){
  self.focus();
  window.setTimeout("self.close()",300);
  return true
}

wer kann helfen???

    1. hallo Linksetzer i.V.

      das bin ich noch mit meinem alten namen.
      ich suche überall hilfe!

      http://spotlight.de/zforen/jas/m/jas-989914716-10562.html

      (Vgl. E.-Mail Adresse)

  1. Hi,

    interessant wäre, den Aufruf des Skriptes zu sehen. Wenn es aus einem Link aufgerufen wird, ist folgendes denkbar:

    • Der Focus wird zugeteilt
    • In 0,3 Sek. wird das Fenster geschlossen
    • Aber _bevor_ die 0,3 Sek. rum sind, wird der Link ausgeführt, das Skript ist weg und das Fenster kann nicht mehr geschlossen werden.

    Also: bitte noch mal aufrufenden Code-Schnippsel posten.

    Grüße,

    Utz

    1. Hi,

      also aus dem hauptfenster rufe ich mittels

      function fenster() {
        F1=open("who.html","form","resizeable=no,scrollbars=no,width=350,height=300");// Fenster oeffnen
        F1.moveTo(200,170);// Fenster positionieren mit x,y
        window.location.href = "gewinn.html"; // im hintergrund wird hauptfenster gewechselt
      }

      im neuen formular-fenster

      <form method=post ... onsubmit="return pruefen()">

      ...

      </form>

      function pruefen(){
      ...

      if(fehler == ""){
        self.focus()
        window.setTimeout("self.close()",300)
        return true
        }
      }

      wie gesagt im ie kein problem. der netscape schchließt das fenster nicht.

      eines habe ich schon rausgefunden
      window.setTimeout("self.close()",300) im ie ok
      window.setTimeout(self.close(),300) im netscape ok

      das macht mich echt verrückt?!!!!

      danke

      Hi,

      interessant wäre, den Aufruf des Skriptes zu sehen. Wenn es aus einem Link aufgerufen wird, ist folgendes denkbar:

      • Der Focus wird zugeteilt
      • In 0,3 Sek. wird das Fenster geschlossen
      • Aber _bevor_ die 0,3 Sek. rum sind, wird der Link ausgeführt, das Skript ist weg und das Fenster kann nicht mehr geschlossen werden.

      Also: bitte noch mal aufrufenden Code-Schnippsel posten.

      Grüße,

      Utz

      1. Hi,

        unter der Annahme, dass Du pruefen() in Deinem Code korrekt notiert (also mit abschließenden Strichpunkten), meine ich, dass Du ein ganz "simples" Timingproblem hast - Du rufst vermutlich mit Deinem Formular ein verarbeitendes Programm/Skript auf, richtig? Wenn das antwortet, bevor die 0,3 Sek. um sind. ist IMHO halt auch das Skript weg. Versuch mal, die Funktion ins Hauptfenster zu verlegen:

        Aufruf aus Formularfenster:

        <form method=post ... onsubmit="return opener.pruefen()">

        Und im Hauptfenster dann:

        function pruefen(){
        ...

        if(fehler == ""){
          F1.focus();
          window.setTimeout("F1.close()",300);
          return true;
          }
        }

        Wobei Du natürlich aufpassen musst, in welchem Fenster jetzt die Variable fehler abzufragen ist - vermutlich bist Du am besten dran, wenn Du sie von vornherein ins Hauptfenster schreiben lässt.

        window.setTimeout("self.close()",300)

        Das ist AFAIK die richtige Syntax, auch für NS.

        Grüße,

        Utz

        1. Hi

          danke, das werde ich gleich einmal ausprobieren

          Hi,

          unter der Annahme, dass Du pruefen() in Deinem Code korrekt notiert (also mit abschließenden Strichpunkten), meine ich, dass Du ein ganz "simples" Timingproblem hast - Du rufst vermutlich mit Deinem Formular ein verarbeitendes Programm/Skript auf, richtig? Wenn das antwortet, bevor die 0,3 Sek. um sind. ist IMHO halt auch das Skript weg. Versuch mal, die Funktion ins Hauptfenster zu verlegen:

          Aufruf aus Formularfenster:

          <form method=post ... onsubmit="return opener.pruefen()">

          Und im Hauptfenster dann:

          function pruefen(){
          ...

          if(fehler == ""){
            F1.focus();
            window.setTimeout("F1.close()",300);
            return true;
            }
          }

          Wobei Du natürlich aufpassen musst, in welchem Fenster jetzt die Variable fehler abzufragen ist - vermutlich bist Du am besten dran, wenn Du sie von vornherein ins Hauptfenster schreiben lässt.

          window.setTimeout("self.close()",300)

          Das ist AFAIK die richtige Syntax, auch für NS.

          Grüße,

          Utz