molily: Problem mit appendChild()...

Beitrag lesen

Hallo,

Also hier das Skript und die Seite

Das Dokument hat einen groben HTML-Fehler und der Button erscheint daher gar nicht - das script-Element wird nicht geschlossen.

Wenn ich das repariere, funktioniert das Meldungsfenster zumindest. Wenn du weitere Meldungsfenster mit anderem Inhalt anzeigen willst, dann solltest du dir ausdenken, wie du dein Script strukturierst. Das gegenwärtige Script hängt Elemente in ein anderes Element ein. Wenn du Elemente versteckst, sind sie selbstverständlich noch da, und wenn du das gegenwärtige Script noch einmal aufrufst, werden einfach zusätzliche Elemente eingehängt.

Was du also machen kannst: Entweder abfragen, ob die Elemente schon erzeugt wurden (z.B. prüfen, was document.getElementById("Meldung_Titel") zurückgibt). Dann sprichst du die Elemente an, dessen Inhalt geändert werden soll und änderst die Textknoten entsprechend (nodeValue der Textknoten ändern oder einfacher innerHTML des Elementes setzen).
Oder die Elemente beim Ausblenden des Meldungsfensters löschen und dann neu erzeugen und einhängen.

Dann noch einige Tipps:

  • Auf createAttribute kannst und solltest du immer verzichten. Benutze einfach setAttribute("name", "wert").
  • Style-Informationen solltest du immer aus dem Script heraushalten und ins Stylesheet auslagern. Im JS setzt du dann einfach Klassen oder IDs (das tust du ja eh), sodass die Formatierungen aus dem Stylesheet wirken.
  • JavaScript-Event-Handler solltest du nicht mit setAttribute setzen, sondern altmodisch über element.onclick = handlerfunktion;. Also z.B. Button_Bereich.onclick = OK; (ohne Klammern hinter dem Funktionsnamen).
  • Lokale Funktionsvariablen (die mit var notiert werden) musst du nicht mit delete am Ende der Funktion löschen - die verfallen automatisch, wenn die Funktion beendet wird.

Mathias