Hi,
document.write("<font size=+2>Kalender für ", mm+1, ".", yy, "</font><br>");
document.write() auf ein Dokument ausgeführt, welches bereits abschließend gerendert wurde (also "fertig geladen ist"), führt dazu, dass zunächst document.open() ausgeführt wird. Sprich: Das aktuelle Dokument wird erst mal vernichtet und ist somit weg. Idealerweise streichst Du document.write() aus Deinem Gedächtnis und verwendest ausschließlich DOM-Methoden.
Darüber hinaus möchtest Du auch auf <font> verzichten. Auch das <br> zweifele ich hier an.
document.getElementById("kalender").appendChild("<script>calendar()</script>");
Damit document.getElementById("kalender") etwas Deinen Wünschen entsprechendes liefern kann, muss das Element mit dieser ID bereits existieren. Du definierst es jedoch erst später - es ist also in dieser Zeile noch nicht da. Folge: appendChild() kann nicht angewendet werden, da der Wert null (die Rückgabe von document.getElementById()) keine solche Eigenschaft besitzt => JavaScript-Fehler.
Da spielt es also auch keine Rolle mehr, dass appendChild() eine DOM-Node als Argument erwartet, keinen String. Nebenbei bemerkt musst Du, wenn Du einen JavaScript-Code ausführen möchtest, diesen nicht erst umständlich als String oder Inhalt eines <script>-Elements verpacken - führe ihn einfach zum geeigneten Zeitpunkt aus.
Ist ziemlich groß... der Kalender geht nicht.
"Geht nicht" und "funktioniert nicht" sind übrigens keine Problembeschreibungen. Wenn Fehler nicht so offensichtlich sind wie hier, führen solche Formulierungen lediglich dazu, dass Dir nicht geholfen werden kann. Das ergibt Frust auf beiden Seiten - vermeidbaren Frust. Sei also bitte so gut, ab jetzt Problembeschreibungen beizufügen.
Cheatah
X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes