molily: in JS in ner Zeichenkette kein </script> erlaubt????

Beitrag lesen

Weil das mit dem </ in einem CDATA-Block eigentlich nicht zählen. Wenn es ]]> wäre und nicht </ , dann würde ich es verstehen.

Na, das einzige, was du nicht verstehst, ist die Bedeutung von »HTML-kompatiblem XHTML«, wovon du Gebrauch machst. XHTML 1 gehört nämlich gleichzeitig zwei Welten an.

Du schreibst zwar XHTML, aber lieferst es mit dem MIME-Typ text/html an die Browser. Diese benutzen deshalb keinen XML-Parser und verarbeiten das Dokument daher auch nicht nach X(HT)ML-Regeln. Sondern sie benutzen ihre Tag-Soup-Parser und halten sich grob an die in HTML 4 definierten Regeln - zumindest in diesem Punkt: In HTML 4 wird der Inhalt eines script-Elementes mit der Zeichenkette </ beendet - immer, ohne Ausnahme. Du musst daher </ schreiben.

Also: XML-Regeln gelten AUCH für dein XHTML-Dokument, und aus XML-Sicht machst du alles richtig und aus XML-Sicht ist deine Überlegung völlig richtig. Der Punkt ist nur, dass dein Dokument nicht als XML von den Browsern verarbeitet wird und sie andere Regeln anlegen. Gemäß diesen Regeln hat der CDATA-Abschnitt keine Bedeutung.

Mathias