Stephan: Popup-Fenster wieder schließen

Hallo, ich stehe irgendwie gerade auf der Leitung und hoffe, ihr könnt mir weiterhelfen.

Ich möchte für eine längere Datenbankabfrage ein kleines Popup-Fenster einblenden, das um Geduld bittet. Das Öffnen mache ich so:

neuesFenster=window.open("warten.html","Fenster2","width=150,height=150,left=320,top=200");

Funktioniert auch. Das Fenster öffnet sich, sobald die Suche los geht.

Jetzt soll es sich aber auch automatisch wieder schließen, wenn die Abfrage beendet ist. Und da hängt es jetzt. Mir ist gerade nicht klar, wie ich das anfangen soll.

Ich habe es so probiert:

<body onload="neuesFenster.close();">

Geht aber nicht, da das Fenster ja nicht bekannt ist. Wie kann ich trotzdem drauf zugreifen?

Schon mal danke...

  1. Hallo Stephan,

    <body onload="neuesFenster.close();">

    Das Ganze kann auch nicht funktionieren, denn das Objekt "neuesFenster" existiert ja gar nicht mehr (du hast ja eine neue Seite geladen, und damit werden alle initialisierten Variablen und Objekte gelöscht).

    Dementsprechend kannst du die Steuerung nur im Fenster selbst anlegen, indem du dort eine Routine anlegst die abfragt ob der "opener" eine andere Seite geladen hat.

    Aber ehrlich gesagt braucht niemand mehr Popups im Web, und viele bekommen sie sowieso gar nicht mehr angezeigt (dank Firefox und jetzt auch seit dem Service Pack 2 der IE).

    cu

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    SELFCode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    http://emmanuel.dammerer.at/selfcode.html
  2. Moin, moin!

    Wie wäre es mit dieser Lösung:

    Wenn im Hauptfenster die Datenbankabfrage fertig ist, wird sicherlich eine neue Seite aufgebaut. Und von diesem läßt Du erneut ein PopUp mit dem zuvor bereits verwendeten Namen erzeugen, diesmal mit
    neuesFenster=window.open("kill.html","Fenster2","width=150,height=150,left=320,top=200");

    Da das neue Fenster den selben Namen hat wie ein bereits existierendes, wird dessen Inhalt überschrieben. Und der Inhalt (hier vereinfacht) der Datei kill.html

    <html>
      <head>
        <script>
          self.close();
        </script>
      </head>
      <body>
      </body>
    </html>

    sogt dafür, dass es sich selbst schließt.

    Existiert das Fenster "Fenster2" inzwischen nicht mehr, so wird es erzeugt - und schließt sich sofort wieder.

    Alles klar?

    Norbert