Christof Lutz: Reaktion auf externes Fenster

Hallo!

Ich hab folgende Situation, für die ich keine Lösung finde:

Ich habe ein Script in einer Form, aus welcher ich ein PoPup (per openWindow) öffne. Aus diesem soll eine Auswahl getroffen werden und die Daten an das öffnende Fenster übermittelt werden. Danach sollen die übermittelten Daten im ersten Fenster weiter verarbeitet werden.

Jetzt zum Problem: Ich bekomme zwar die Daten aus dem zweiten Fenster (PopUp) ins öffnende Fenster rüber, aber der Quelltext aus dem ersten Fenster läuft weiter und "wartet" nicht bis die Daten vom PopUp übertragen sind (und verarbeitet dadurch auch die "nicht vorhandenen" Daten").

Meine Idee war die, dass über ein EventListener im öffnenden Dokument nach dem Öffnen des PopUps gewartet wird, bis das PopUp geschlossen wird (window.close) und danach mit dem verarbeiten des Quelltextes fortgesetzt wird.

Leider habe ich keine Ahnung, wie ich das Schließen des PopUps im EventListener erfassen kann und verarbeiten kann...

Ich hoffe, ich habe mein Problem einigermaßen Verständlich beschrieben und warte auf hilfreiche Vorschläge.

  1. Hi,

    Jetzt zum Problem: Ich bekomme zwar die Daten aus dem zweiten Fenster (PopUp) ins öffnende Fenster rüber, aber der Quelltext aus dem ersten Fenster läuft weiter und "wartet" nicht bis die Daten vom PopUp übertragen sind

    Inwiefern kann ein Quelltext laufen?
    Bitte erläutere Dein Problem doch etwas verständlicher, am besten mit etwas Quelltext und/oder einer Denoseite.

    freundliche Grüße
    Ingo

    1. Hi,

      mit Quelltext weiterlaufen meinte ich, dass die Funktion weiter ausgeführt wird, nachdem sie das PopUp geöffnet hatte.

      Ich will jetzt die Lösung, die wahsaga vorgeschlagen hat realisieren. Da hab ich aber noch ein kleies Problem.

      Hier erstmal die Quellcode Stücke:

      1.Fenster:

      function changePurchGroupFirst() {

      var path = document.forms[0].PPath.value;
        var url = "http://"+path+"/(web.chpc.act)?OpenView";
        var name = "Purchasing";
        var style = "height=570,width=500,top=110,left=260,location=no,menubar=no,resizable=no,scrollbars=yes";
        javascript:openWindow(url,name,style);
      }

      function changePurchGroupSecnd() {

      document.forms[0].NextSigner.value=document.forms[0].CCPurchTmp.value;
      document.forms[0].submit();
      }

      2. Fenster (geöffnet durch openWindow(url,name,style) Rückgabe durch:

      ONCLICK="opener.document.forms[0].Purch.value=''+Content[i][0]+'';_
      opener.document.forms[0].CCPurchTmp.value=''+Content[i][2]+'';_
      window.close();_
      changePurchGroupSecnd();

      Dabei soll mit dem letzen Funktionsaufruf die zweite Funktion im ersten Fenster angesprochen werden (was natürlich so wie ich es derzeit geschrieben habe nicht geht).
      Ich weiss allerdings nicht, wie ich dem Statement im ONCLICK beibringe, dass der Aufruf die Funktion im ersten Fenster startet.

      1. Hi,

        javascript:openWindow(url,name,style);

        was soll den das sein?

        freundliche Grüße
        Ingo

  2. hi,

    Jetzt zum Problem: Ich bekomme zwar die Daten aus dem zweiten Fenster (PopUp) ins öffnende Fenster rüber, aber der Quelltext aus dem ersten Fenster läuft weiter und "wartet" nicht bis die Daten vom PopUp übertragen sind (und verarbeitet dadurch auch die "nicht vorhandenen" Daten").

    Dann mache nach dem Öffnen des Popups nicht sofort mit der Verarbeitung weiter, sondern breche an dieser Stelle ab.
    Nach der Rückgabe der Daten aus dem Popup stößt du dann anschließend aus diesem heraus noch eine Funktion im Hauptfenster an, die die weitere Berarbeitung übernimmt.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Danke!

      Ich hatte zwar zuerst vor, das alles in einer Funktion unter zu bringen, aber inzwischen denke ich, dass deine Idee einfacher zu realisieren ist (und genauso effektiv).