cbergmann: javascript generierter Code nicht XHTML conform

hi,

ich schreibe gerade eine kleine Webanwendung und verwende in dieser sehr viel Javascript code.
Eine entwicklungs-Version der Seite ist unter folgender URL zu finden:
http://rosmarin.fernuni-hagen.de/imap/clemens/
Dies Seite wird zu großen Teilen direkt vom javascript code erstellt und erweitert. Sie sollte eigendlich XHTML conform sein.
Da sich die Entwicklung dem Ende nähert wollte ich jetzt einmal überprüfen ob mein Code auch wohlformatiert ist und habe den validator vom w3c drüberlaufen lassen. Dieser läuft auch sauber durch. Er validiert aber natürlich nur den statischen Code. Daher habe ich mir im nächsten Schritt den dynamisch erzeugten Code ausgeben lassen und auch diesen durch den Validator gejagt.
Dabei habe ich festgestellt das alle Tags die eigendlich der form <tag /> sein sollten in dem dynamischen Code in der Form <tag> sind. Es handelt sich hierbei ausschließlich um node objekte die per document.createElement erzeugt und dann mit appendChild() hinzugefügt wurden.
Dieses Verhalten war sowohl beim Firefox als auch beim Internet-Explorer zu bemerken.
Ich ging die ganze zeit davon aus das solche DOM operationen immer auch wieder gültigen code generieren. Kann ich davon einfach nicht ausgehen und muss entweder auf HTML 4 umsteigen oder damit leben das meine Seite nicht Standardkonform ist oder mache ich einen Fehler?

mfG
Clemens

  1. [latex]Mae  govannen![/latex]

    Ich ging die ganze zeit davon aus das solche DOM operationen immer auch wieder gültigen code generieren. Kann ich davon einfach nicht ausgehen und muss entweder auf HTML 4 umsteigen oder damit leben das meine Seite nicht Standardkonform ist oder mache ich einen Fehler?

    Das wird wahrscheinlich daran liegen, daß du die Seite als text/html auslieferst.

    Zwar könntest du die Seite als application/xhtml+xml ausliefern lassen, aber IE ist - auch noch in der neuesten Version - zu blöd dazu.

    Also mußt du entweder bedingt ausliefern, wenn der anfragende Browser das versteht (mit allen damit verbundenen Risiken) und damit leben, daß andere Browser wie IE keinen gültigen Code erzeugen oder du mußt für diese Tags explizit im JS die XHTML-Schreibweise benutzen und z.B mit innerHTML arbeiten. Diese Elemente dürfen ja ohnehin keinen weiteren Inhalt haben, sodaß das eventuelle Einhängen von weiteren Strukturen bei diesen entfällt.

    Oder du lebts einfach damit, daß es so ist, wie es ist. Dürfte ohnehin nur ein kosmetisches Problem sein.

    Cü,

    Kai

    --
    Hard to believe that anyone would use Prototype.js at this
    point. It was a bad idea in 2006 and it hasn't gotten any better with age. (David Mark)
    Foren-Stylesheet Site Selfzeugs
    SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
  2. Hi,

    Ich ging die ganze zeit davon aus das solche DOM operationen immer auch wieder gültigen code generieren.

    hier liegt Dein Fehler: DOM-Operationen erzeugen *keinen* Code. Sie erzeugen Objekte. Was Du hast validieren lassen, ist eine spätere String-Repräsentation dieser Objekte - die absolut irrelevant ist. Wenn's Dir nicht passt, überschreibe die toString()-Methoden der entsprechenden Prototypen mit etwas, dass Dir genehme Ergebnisse produziert. Nutzen hast Du davon freilich keinen.

    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