molily: Update einer via JSCRIPT erzeugten Tabelle

Beitrag lesen

document.getElementById('area_mondphasenkalender').innerHTML = '<p>Neuer Inhalt</p>';

uff, das hört sich wirklich kompliziert an

Nein, das ist nicht komplizierter als document.write. Es kommt letztlich auf dasselbe heraus: Du generierst HTML-Code und baust ihn ins Dokument ein.

und innerHTML ist doch auch nur eine proprietäre Erweiterung, oder?

SELFHTML ist da irreführend, weil es vor 10 Jahren geschrieben wurde. innerHTML ist nicht an document.all oder andere proprietäre Techniken gebunden.
innerHTML ist heutzutage genauso gut unterstützt wie das klassische W3C-DOM.

Das nächste Problem ist, dass ich über innerHTML keinen neuen Javascript-Content zuweisen kann weil die Browser das Script ignorieren. Über EVAL soll es dazu eine Lösung geben aber diese übersteigt meinen Horizont :-)

Was genau hast du vor? Wieso willst du JavaScript-Code einbinden, wenn du ihn doch auch einfach direkt an der Stelle ausführen/aufrufen kannst?

Wie gesagt solltest du von der Arbeitsweise, die document.write mit sich bringt, wegkommen. Wenn du mit das DOM und Event-Handling verwendest, wirst du diese Arbeitsweise mit ziemlicher Sicherheit letztlich einfacher, flexibler und leistungsfähiger finden als das Erzeugen von Inhalten mittels document.write beim Laden des Dokuments.

In dem Fall brauchst du auch kein eval() mehr und musst auch im Script keine weiteren Scripte mehr ins Dokument schreiben. Das fällt alles weg bei vernünftigem DOM Scripting.

Ich habe letzte Nacht eine andere Lösung umgesetzt. und zwar habe ich das Javascript in eine eigene HTML-Datei ausgelagert welche ich dann in ein IFRAME lade. Dabei übergebe ich den Monat und das Jahr für den Kalender als Übergabeparameter zur URL. Somit kann ich dann einfach via onclick den Inhalt des IFRAME mit einer neuen URL bzw. neuen Parameter aktualisieren.

Das mag dir aufgrund deines gegenwärtigen Wissens und deiner Erfahrung einfach vorkommen, technisch gesehen ist es unnötig kompliziert und von hinten durch die Brust ins Auge gelöst. Beschäftige dich einfach mal mit dem DOM. Damit kannst du solche Änderungen an einem Element im Dokument sehr einfach vornehmen, ohne den zu ändernden Bereich in einen IFRAME zu verpacken und die Dynamik über das Neuladen eines Dokuments darin zu lösen.

document.write ist 15 Jahre alt. Das DOM ist über 10 Jahre alt und seit 7-8 Jahren hinreichend unterstützt. Heute wird document.write fast nicht mehr verwendet. Aus guten Gründen.

Mathias