Perli: Popup während Upload...

Hallo,

ich habe mit Perl-Scripten einen Upload einer Datei realisiert.
Damit der User sieht, wie lange der Upload dauert, möchte ich ein zusätzliches Fenster öffnen,
das nach dem Upload automatisch geschlossen wird. Hierzu bin ich wie folgt vorgegangen:

  • Bei onClick auf den Upload Button rufe ich die Funktion popup() auf
      ...onClick="popup();"...

var laeuft_noch = true;
  function show_warten() {
    window.open("upload_laeuft.html",
                "Upload",
                "width=$breite,height=$hoehe,left=20,top=20,resizable=yes,scrollbars=yes"
               );
    return true;
  }

  • For der Funktion definiere ich noch die globale Variable laeuft_noch und belege sie mit true;

  • In dem Popup möchte ich nun warten, bis diese Variable (auf die ich ja über das Objekt opener
      zugreifen kann) nicht mehr existiert oder nicht mehr true ist. Dazu benutze ich folgendes JS
      in upload_laeuft.html
      function warten() {
        var opener_laeuft_noch;
        while (1) {
          opener_laeuft_noch = false;
          try {
            if // (navigator.platform.indexOf("Mac") != -1) &&
               ((navigator.appVersion.indexOf("Win") != -1) || (navigator.appVersion.indexOf("MSIE") != -1) ||
                (navigator.appName.indexOf("Opera") != -1)) {
              opener_laeuft_noch=opener.laeuft_noch;
            }
            else {
              opener_laeuft_noch=opener.laeuft_noch.value;
            }
          }
          catch (e) {
            //alert("Fehler...");
            self.focus;
            top.close;
          }
          //alert(opener_laeuft_noch);
          if ((opener_laeuft_noch == null) || (opener_laeuft_noch == false)) {
            //alert("...unn wech...");
            //window.name='...fertig...';
            self.focus;
            top.close();
            break;
          }
        }
        //alert("aha");
        return true;
      }
      window.setTimeout("warten()",20);

PROBLEM:
Das funktioniert auch alles ganz toll. Wenn ich es jedoch mit einem Mac anschaue
(MSIE 4.0 - Plattform MacPPC) geht das Popup zwar auf, aber nicht mehr zu :-(
Könnte es sein, dass das try...catch nicht funktioniert? Wenn ja, was habe ich für Alternativen=
Seltsam ist, dass wenn ich aus der Zeile //alert(opener_laeuft_noch); den Kommentar entferne,
werden im alert die Werte korrekt angezeigt bis undefiniert und dann schliesst das Popup auch!!!???

Wäre super, wenn jemand nen Tipp für mich hätte.

Danke im voraus & Gruss,
  Perli

  1. Hallo,

    ich hatte das mal so gelöst, dass das popup vom opener geschlossen wird, nachdem der upload beendet ist. denn danach wird ja eine neue seite aufgerufen.

    gruß.
    roger.

    1. Hi Roger,

      ist ja witzig - ich heisse auch Roger :-)

      Wenn ich onClick das neue Fenster öffne, dann über submit das Perl-Script neu starte, das den Upload macht und das neue Fenster generiert, habe ich dann überhaupt noch die Möglichkeit auf das geöffnete Fenster zuzugreifen? Der Handle geht doch verloren. Oder kann ich auf alle anderen Browserfenster zugreifen und z.B. das mit dem entsprechenden Titel Upload Fenster schliessen?

      Gruss,
        Perli alias auch-Roger :-)

      Hallo,

      ich hatte das mal so gelöst, dass das popup vom opener geschlossen wird, nachdem der upload beendet ist. denn danach wird ja eine neue seite aufgerufen.

      gruß.
      roger.

      1. Hi Roger,

        wenn du das fenster öffnest, dann gibst du ihm ja einen namen. mit diesem namen kannst du es dann ansprechen. und eben auch schliessen.

        gruß.
        roger.

        1. hallo

          wenn du das fenster öffnest, dann gibst du ihm ja einen namen. mit diesem namen kannst du es dann ansprechen. und eben auch schliessen.

          müsste doch auch onUnload() in der alten seite gehen, oder?

          grüsse, raik