matthias: write() an einem anderen Ort im Quelltext ausführen

Hallo,

hat jemand eine Idee, wie ich ein document.write() nicht dort ausführen lasse, wo es ausfegrufen wird, sondern an anderer Stelle im HTML-Text?

Vielen Dank

Matthias

  1. Hello out there!

    hat jemand eine Idee, wie ich ein document.write() nicht dort ausführen lasse, wo es ausfegrufen wird, sondern an anderer Stelle im HTML-Text?

    Was hindert dich daran, das 'document.write()' dort im Quelltext zu notieren, wo die Ausgabe erfolgen soll?

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. hi gunnar,

      weil der Auslöser nicht "onload" sein soll.

      der auslöser kommt aus einem anderen iframe.

      Was ich erzeugen will ist ein Set an Formularfeldern: 1 Select und 2 Inputs. Dann will ich dieses Set "duplizieren", wenn das letzte ausgefüllt wurde. Es soll also immer eine Zeile hinzukommen. Da aber das Select in dem Set ein anderes sein kann, muss ich eben auch dieses erzeugen.

      Kein Plan. Ich könnte ein Set durch eine Funktion write()en. Doch kommt eben der Auslöser aus einem anderen Frame.

      Ich bin dabei mich dem zu nähern - doch drehe ich mich irgendwie im Kreis.

      Ich könnte so ein Set in Divs packen und unsichtbar machen. Doch irgendwie ist das nicht sauber...

      Matthias

      Hello out there!

      hat jemand eine Idee, wie ich ein document.write() nicht dort ausführen lasse, wo es ausfegrufen wird, sondern an anderer Stelle im HTML-Text?

      Was hindert dich daran, das 'document.write()' dort im Quelltext zu notieren, wo die Ausgabe erfolgen soll?

      See ya up the road,
      Gunnar

      1. Hallo,

        Was ich erzeugen will ist ein Set an Formularfeldern: 1 Select und 2 Inputs. Dann will ich dieses Set "duplizieren", wenn das letzte ausgefüllt wurde. Es soll also immer eine Zeile hinzukommen.

        Du kannst die Felder z.B. in einem p- oder div-Element zusammenfassen. Diesen Elementknoten samt Unterknoten kannst du dann duplizieren und erneut einfügen, dadurch hast du dann ein neues Set an Feldern.

        cloneNode()
        appendChild()

        Das Ansprechen geht wie gesagt z.B. über document.getElementById().

        Da aber das Select in dem Set ein anderes sein kann, muss ich eben auch dieses erzeugen.

        Was heißt »ein anderes«? Das name-Attribut muss unterschiedlich sein? Das kannst du nach dem besagten Duplizieren des Sets einfach über die Eigenschaft name des entsprechenden Elementknoten-Objektes ändern.

        Neue Elemente kannst du mit createElement() erzeugen und mit appendChild einhängen.

        Kein Plan. Ich könnte ein Set durch eine Funktion write()en. Doch kommt eben der Auslöser aus einem anderen Frame.

        Vergiss document.write() am besten, die Aufgabe kannst du so nicht lösen.

        Mathias

        1. wow,

          na klar. das klingt vernünftiger. das werde ich doch glatt mal anprobieren.

          gracias

          matthias

  2. Hallo Matthias,

    hat jemand eine Idee, wie ich ein document.write() nicht dort ausführen lasse, wo es ausfegrufen wird, sondern an anderer Stelle im HTML-Text?

    das geht nicht. Der Sinn von document.write() ist, an der Stelle im Quelltext, an der diese Anweisung steht, dynamischen HTML-Code auszugeben. So ist es implementiert.

    Wenn du Elemente an anderer Stelle verändern willst, musst du das über die DOM-Funktionen von Javascript angehen. Das heißt, dass du zunächst über document.getElementsBy...() eine Referenz auf das gesuchte Element brauchst, dessen Eigenschaften du dann über diese Referenz verändern kannst. Wenn es Eigenschaften sind, die das Aussehen des Elements bestimmen, werden sie vom Browser automatisch in die aktuelle Anzeige umgesetzt.

    Ciao,
     Martin

    --
    Computer funktionieren grundsätzlich nicht richtig.
    Wenn doch, hast du etwas falsch gemacht.