Hallo,
Hi da draußen,
ich habe irgendwo gelesen, dass das <iframe>-Tag und die JavaScript-Methode document.write() in XHTML unzulässig sind.
iframe ist wie gesagt in XHTML 1.0 genauso erlaubt wie in HTML 4: Nämlich in der Transitional-Variante.
document.write() ist in XHTML ebenfalls »erlaubt«. Nirgendwo ist es verboten. Solange du XHTML nur als sogenanntes HTML-kompatibles XHTML mit dem MIME-Typ text/html auslieferst, wird document.write() weiter funktionieren.
ABER: Wenn du XHTML mit dem MIME-Type application/xhtml+xml auslieferst, der Browser das Dokument also als »echtes« XHTML verarbeitet, dann ignorieren einige Browser document.write(). Hixie beschreibt die Gründe. (Ob man die für stichhaltig hält, ist eine andere Frage.)
Betroffen sind Opera und Gecko-basierte Browser, das sind momentan auch die einzigen, die »echtes« XHTML wirklich umsetzen können. (Konqueror und Safari kennen zwar application/xhtml+xml, parsen XHTML aber immer als »Tag-Soup«, nicht gemäß den XML-Regeln. document.write() funktioniert darin im Moment immer, wenn ich noch auf dem aktuellen Stand bin. IE kann überhaupt kein »echtes« XHTML.)
99,9% der Leute, die XHTML verwenden, scheren sich nicht um die Unterscheidung zwischen HTML-kompatiblen und »echtem«, als XML verarbeiteten XHTML. Sie erwenden XHTML immer im Zusammenhang mit dem MIME-Typ text/html, document.write() funktioniert daher für sie immer.
»Kein document.write() in XHTML« trifft also nur eingeschränkt zu: Kein document.write() in als XML verarbeiteten XHTML.
http://www.mozilla.org/docs/web-developer/faq.html#xhtmldiff
http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite
http://forum.de.selfhtml.org/archiv/2005/2/t101199/#m621128
http://forum.de.selfhtml.org/archiv/2006/2/t123550/#m795730
Vielleicht auch mal googlen und die Archivsuche benutzen...
Mathias