Kukulkan: Wie in neues Fenster Zwingen? Komplexes Problem...

Hallo,

Ich habe einen eigenen Webserver entwickeln müssen, der aufgrund bestimmter Events aus einem ActiveX-Control Seiten generiert und an den Browser zurückgibt. Das klappt soweit, da ich immer in den selben Frame 'antworte' (target="_self"). Ich liefere also eine normale HTML-Seite von <html> bis </html> an den Browser zurück.

Jetzt ist es so, dass der Benutzer etwas klickt. Daraufhin übergebe ich die Anfrage an das Control. Ich bekomme nun entweder einen A-Event oder einen B-Event anhand dessen ich die Rückgabe erstelle.

Im Falle des A-Events möchte ich das nächste Fenster kleiner und als Popup darstellen (es soll was nachgefragt werden).

Im Falle des B-Events soll der Inhalt des bestehenden Fensters (Frame) mit einer neuen Seite aktualisiert werden.

Den Code der beiden Fenster zu generieren ist kein Problem. Nur, wie bringe ich dem Browser bei das eine Fenster als Popup zu öffnen und das andere nicht? Zum Zeitpunkt des User-Klicks kann ich das leider noch nicht wissen :-(

Eine Idee oder einen Tipp? JavaScript darf benutzt werden.

Kukulkan

  1. Hi,

    Im Falle des A-Events möchte ich das nächste Fenster kleiner und als Popup darstellen (es soll was nachgefragt werden).

    Die wichtige Frage ist, was soll mit dem Hauptfenster passieren? Soll es sich gar nicht verändern, darf es sich neu aufbauen mit der gleichen Seite wie vorher oder soll es leer werden? (oder was anderes?)

    Davon hängt ab, welche Möglichkeiten zur Verfügung stehen.

    Gruß,

    Harlequin

    1. Hallo,

      Die wichtige Frage ist, was soll mit dem Hauptfenster passieren? Soll es sich gar nicht verändern, darf es sich neu aufbauen mit der gleichen Seite wie vorher oder soll es leer werden? (oder was anderes?)

      Das Hauptfenster sollte so lange unverändert bleiben.

      Wäre sowas über einen Dummy-Frame zu realisieren?

      Kukulkan

      1. hi,

        Wäre sowas über einen Dummy-Frame zu realisieren?

        Ja, könnte gehen - wenn auch nicht gerade schön.

        Das Formular ziel immer auf den Dummy-Frame - und der Server liefert in jedem Fall ein kurzes Dokument zurück, in welchem per Javascript die Ausgabeseite entweder in den ursprünglichen Formular-Frame, oder in ein Popup geladen wird.

        Das erfordert Serverseitig aber natürlich irgendeine (Zwischen-)Speicherung der Daten - damit du sie in der Ausgabeseite wieder auslesen kannst. Wenn die Daten sowieso gespeichert werden, kein Problem - ansonsten könnten bspw. Sessions weiterhelfen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Ja, könnte gehen - wenn auch nicht gerade schön.

          Vielen Dank Ihr zwei. So muss ich das ganze Thema aber neu überdenken und evtl. neu Programmieren (Sessions etc.). Mist aber auch...

          Kukulkan

        2. Moin.

          Das erfordert Serverseitig aber natürlich irgendeine (Zwischen-)Speicherung der Daten

          Kann man die anzuzeigenden Daten nicht in geeigneter Form an den Dummyframe senden und von dort aus mittels JavaScript (window.document.write/frame.document.write) den Inhalt des Popup bzw. neuen Frame schreiben? Oder ein Template ins Popup/Frame laden und nur Teile der Seiten (innerHTML) ersetzen?

          Gruß Frank

          1. hi,

            Kann man die anzuzeigenden Daten nicht in geeigneter Form an den Dummyframe senden und von dort aus mittels JavaScript (window.document.write/frame.document.write) den Inhalt des Popup bzw. neuen Frame schreiben? Oder ein Template ins Popup/Frame laden und nur Teile der Seiten (innerHTML) ersetzen?

            Ja, könnte man wohl auch.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hi,

        Das Hauptfenster sollte so lange unverändert bleiben.

        Das ist die schwierigste Variante ;-)

        Wäre sowas über einen Dummy-Frame zu realisieren?

        Das wäre eine Möglichkeit, im Dummyframe ein HTML-Dokument mit den entsprechenden JS-Anweisungen für das Pop-Up oder die Aktualisierung der Hauptseite zu laden. Eine andere wäre der Einsatz von AJAX, dürfte aber für das Problem aber eher ein mit Kanonen auf Spatzen Schießen sein...

        Gruß,

        Harlequin

  2. hi,

    Nur, wie bringe ich dem Browser bei das eine Fenster als Popup zu öffnen und das andere nicht?

    Wenn der Frameinhalt ersetzt werden darf, liefere ein kleines Dokument zurück, welches die Anweisung zum Öffnen eines Popups enthält; Als Adresse des Popups gibst du dann die Ressource an, die die gewünschten Daten darstellt.

    gruß,
    wahsaga

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