Ron: fragen zu document.open erzeugte fenster

hallo miteinander,

hätte da mal 2-3 fragen,
hab ein formular das geprüft wird und zum schluß in einem document.open- document.write-fenster ausgegeben wird, damit der benutzer sehen kann was er da alles bestellt. funktioniert auch soweit.
hab nun in dem document zum schluß einen button der bei onclick auf eine javascript-function zugreifen soll die das ausgefüllte formular abschickt. doch steht diese function in dem geschriebenen fenster ja nicht. das formular und die function stehen ja jetzt im vorhergehenden document.

muß ich folgende function mitschreiben lassen?

function abschicken(){
document.forms[0].submit()}

mit

javascript:parent.document.forms[0].submit()

oder

javascript:opener.document.forms[0].submit()

in die onclick-funktion des buttens geschrieben funktioniert es auch nicht.

der andere punkt ist das der zweite button dafür da sein soll den benutzer zurück zum ausfüllen des formulars schicken soll, wenn er was nicht in ordnung findet.

hab ich mit:

onclick='javascript:history.go(-1)'

versucht, will aber auch nicht. hab gedacht das damit auch gleichzeitig alle einträge des formulars erhalten bleiben würden, und er nur noch ändern muß.

jedoch passiert bei beiden einfach nichts.

wo ist da mein denkfehler?

meine dritte frage ist, ob ich ein hintergrundbild in ein solch geöffnetes fenster stellen kann, da ja kein bodytag vorhanden ist

freue mich auf antworten...

gruß ron

  1. Hi,

    hab ein formular das geprüft wird und zum schluß in einem document.open- document.write-fenster ausgegeben wird, damit der benutzer sehen kann was er da alles bestellt. funktioniert auch soweit.

    der vorherige Inhalt des Fensters ist damit übrigens _vollständig_ überschrieben worden. Es existiert auch kein Hinweis (geschweige denn eine Referenz) auf eine eventuelle frühere Version. Erst ein Reload bringt das Original - selbstverständlich ohne die Daten, die der User erst ins Formular eingegeben hat.

    das formular und die function stehen ja jetzt im vorhergehenden document.

    Nein - ein vorhergehendes Dokument gibt es nicht. Nur eine frühere Version des _selben_ Dokuments - und keine Möglichkeit, darauf zuzugreifen.

    muß ich folgende function mitschreiben lassen?

    Ja - und das Formular auch. Wobei Du eine simple Methode wie forms.submit() nicht in eine Funktion kapseln musst, wenn Du nichts zusätzliches damit vorhast, aber das nur nebenbei.

    javascript:parent.document.forms[0].submit()
    javascript:opener.document.forms[0].submit()

    Gibt's beides nicht. Es gibt location.reload(), das bringt Dir aber auch nichts.

    der andere punkt ist das der zweite button dafür da sein soll den benutzer zurück zum ausfüllen des formulars schicken soll, wenn er was nicht in ordnung findet.

    location.reload() ;-)

    onclick='javascript:history.go(-1)'

    Ein Event-Handler enthält JavaScript-Code, und "javascript:" ist keine gültige JavaScript-Syntax. Das da produziert einen Fehler.

    Mal abgesehen davon, dass Du damit ohnehin nur zu der Seite zurückführst, nach der der User auf die Formularseite gelangt ist.

    wo ist da mein denkfehler?

    Selbe URL[1] <=> selbes Dokument - Du änderst nicht die URL nicht, glaubst aber, dass das Dokument ein anderes ist.

    [1] Bei GET jedenfalls. Mit POST wird's ein ganz klein wenig komplizierter; das Prinzip ist aber noch das gleiche.

    meine dritte frage ist, ob ich ein hintergrundbild in ein solch geöffnetes fenster

    document.open() öffnet kein Fenster. Das macht window.open().

    stellen kann, da ja kein bodytag vorhanden ist

    Ein <body>-Tag ist nur bei HTML nötig - klar, nur HTML (naja, und XHTML, XML & Co.) kennt Tags. Eine Grafik wird (hoffentlich) nicht als text/html ausgeliefert, ergo sind auch keine HTML-Tags erlaubt. Wichtig ist, dass die URL stimmt und der Server richtig konfiguriert ist - mit document.open() bist Du da allerdings falsch.

    Cheatah

    1. Hi Cheatah,

      danke erstma für deine antwort, leuchtet natürlich sofort ein.

      hab ein formular das geprüft wird und zum schluß in einem document.open- document.write-fenster ausgegeben wird, damit der benutzer sehen kann was er da alles bestellt. funktioniert auch soweit.

      der vorherige Inhalt des Fensters ist damit übrigens _vollständig_ überschrieben worden.

      nun ja, dann kann das ja auch alles nicht mehr functionieren...

      Nein - ein vorhergehendes Dokument gibt es nicht. Nur eine frühere Version des _selben_ Dokuments - und keine Möglichkeit, darauf zuzugreifen.

      muß ich folgende function mitschreiben lassen?

      Ein Event-Handler enthält JavaScript-Code, und "javascript:" ist keine gültige JavaScript-Syntax. Das da produziert einen Fehler.

      hast du natürlich recht. macht man nur in nem href.

      Mal abgesehen davon, dass Du damit ohnehin nur zu der Seite zurückführst, nach der der User auf die Formularseite gelangt ist.

      Selbe URL[1] <=> selbes Dokument - Du änderst nicht die URL nicht, glaubst aber, dass das Dokument ein anderes ist.

      meine dritte frage ist, ob ich ein hintergrundbild in ein solch geöffnetes fenster

      document.open() öffnet kein Fenster. Das macht window.open().

      hatte mich verschrieben, meinte natürlich document..

      hört sich aber jetzt so an als könnte ich mit window.open und dann document.write das ganze bewerkstelligen, weil ja das document dann vorhanden bleibt, oder nicht?

      und wie kriege ich dann ein hg-bild in ein solch geöffnetes fenster?

      gruß ron...

      1. Hi,

        danke erstma für deine antwort, leuchtet natürlich sofort ein.

        echt? 'Tschuldigung... ;-)

        Ein Event-Handler enthält JavaScript-Code, und "javascript:" [...]
        hast du natürlich recht. macht man nur in nem href.

        Nein: bei URLs. Sieh "javascript:" als Protokoll an, ähnlich wie "http://" oder "mailto:".

        hört sich aber jetzt so an als könnte ich mit window.open und dann document.write das ganze bewerkstelligen, weil ja das document dann vorhanden bleibt, oder nicht?

        Jupp.

        und wie kriege ich dann ein hg-bild in ein solch geöffnetes fenster?

        Wie kriegst Du ein Hintergrundbild in ein HTML-Dokument? Es gibt mehrere Möglichkeiten; und prinzipiell kannst Du sie alle anwenden. Ob Du ein HTML-Dokument nun per document.write() schreibst oder als *.html vorgefertigt hattest, macht keinen Unterschied.

        Cheatah

        1. o.k. jetzt ist es angekommen..
          man bin ich heut schwer von begriff...