Datenschutzerklärung

innerhtml und appendChild

Validome - Forum

Startseite Validome
RSS 2.0  
Sie sind nicht angemeldet. Atom 1.0  
Forum Home / Javascript-Forum /

innerhtml und appendChild

  Beitrag schreiben
Autor
Beitrag Seiten: 1
mdf
Mitglied

Registriert: 04.08.2007
Beiträge: 6
Hi Freaks!

Also ich habe mir da was zusammengebastelt. So'n kleiner Chat. Mit AJAX.
Nun bekomme ich die Sachen die im DIV dargestellt werden sollen aus der Datenbank als Text. Drin sind auch die HTML-Tags.
Die Anzeige funktioniert auch. Aber, ich übertrage immer alle 100 Zeilen und stelle die im DIV dar und dann scrolle ich den DIV, damit der letzte Beitrag zu sehen ist. Nun flackert das alle 5 Sekunden. Kann man an den vorhandenen Inhalt des DIV nicht noch weiteren Inhalt anfügen?

So sieht der Codeausschnitt jetzt aus:
        document.getElementById("asb_content").innerHTML=mdaten;  //in mdaten steht der ganze Test drin(inkl. HTML CODE)
        asb_content.scrollTop = asb_content.scrollHeight;

Damit wird auch alles richtig angezeigt, nur er löscht den ganzen Inhalt des DIV und schreibt jedes mal alles neu rein, soll aber nur die letzte Zeile anfügen.

Wer kann mir da bitte mal helfen.
Mfg
Torsten


04.08.2007 18:10:47
  Zitieren
HTMELL
Administrator

Registriert: 11.05.2006
Beiträge: 544
Hi,
einfach nur etwas an den Text anzuhängen ohne den kplt. Text zu erneuern wird nicht funktionieren, da aus Sicht von Javascript eben nur der gesammte Text existiert.
Du könntest aber jede Textzeile in ein Element packen (z.B. div oder span). Dann kannst du hinter das letzte Element mit DOM weitere Elemente (welche wiederum neue Textzeilen enthalten) einfügen, ohne das dies Auswirkungen auf die davor stehenden hätte.


_______________________________________
mfg
Thomas Mell

www.validome.org

04.08.2007 19:08:22
  Zitieren
mdf
Mitglied

Registriert: 04.08.2007
Beiträge: 6
Hi,
habe jetzt folgendes:

                                var new_span = document.createElement("span");
                                new_span.innerhtml=mdaten;
                                document.getElementById("asb_content").appendChild(new_span);

funktioniert aber nicht. Im Div wird nichts angehängt. Was habe ich da falsch gemacht?
Mfg
Torsten


05.08.2007 13:26:31
  Zitieren
blind-fish
Mitglied

Registriert: 19.07.2007
Beiträge: 22
Die Mischung von Javascript aus dem DOM-Modell und dem IE-DHTML ist nicht so toll... Probier doch deine erste Lösung, nur dass du statt

Code:

document.getElementById("asb_content").innerHTML=mdaten;

das hier nimmst:

Code:

document.getElementById("asb_content").innerHTML= document.getElementById("asb_content").innerHTML + mdaten;

Dann wird dem Elementinhalt einfach der ursprüngliche Inhalt + neuer Inhalt zugewiesen.

Gruß,
  blind-fish


05.08.2007 19:05:40
  Zitieren
mdf
Mitglied

Registriert: 04.08.2007
Beiträge: 6
Nein, dann löscht er den alten Inhalt und schreibt nur die neue Zeile rein.
mit += mdaten gehts auch nicht.


05.08.2007 20:32:47
  Zitieren
mdf
Mitglied

Registriert: 04.08.2007
Beiträge: 6
Jetzt habe ich es:

                                var new_div = document.createElement("DIV");
                                document.getElementById("asb_content").appendChild(new_div);
                                document.getElementById("asb_content").innerHTML= document.getElementById("asb_content").innerHTML + mdaten;                               

Das funktioniert. ABER:
ich kriege die Fehlermeldung:
'document.getElementById(...)' ist Null oder kein Objekt

Was mache ich nun?


05.08.2007 20:58:47
  Zitieren
mdf
Mitglied

Registriert: 04.08.2007
Beiträge: 6
Problem gelöst...

Habe im Body jetzt onload drin.

Danke für Eure Hilfe.

Mfg
Torsten


05.08.2007 21:34:44
  Zitieren
Seiten: 1   Beitrag schreiben
Wechsel zu

Die letzten Beiträge aus diesen Forum

Valid HTML 4.01