Das stimmt alles THEORETISCH, ist aber kontraproduktiv, wenn es um HTML-kompatibles XHTML als text/html geht, also das Dokument nicht (ausschließlich) als XML verarbeitet wird. Und das macht der Fragende auf seiner Site.
Ah sorry, ja manchmal denke ich zu XMLisch ^^ und bedenke eben nicht dass als text/html ausgelieferte Daten auch als solche behandelt werden.
Bei Variante 2 muss man die CDATA-Tags unbedingt mit JavaScript-Kommentaren umschließen
Oder als application ausliefern? Ach janee, ging ja ausdrücklich um den IE bei der JS-Lösung
Der OP hat die problematische Lösung eingebaut, daher wird das JavaScript auf http://vickanka.bplaced.net/ gerade nicht ausgeführt - schau mal in die Fehlerkonsole, da steht nur:
syntax error
<![CDATA[ if (foo && bar >= 2) {
vickanka.bplaced.net (Zeile 11)
Ich bin sprachlos, Zeile 11f lautet doch tatsächlich
# <script type="text/javascript"><![CDATA[ [code lang=javascript]if (foo && bar >= 2) {
if(window.navigator.systemLanguage && !window.navigator.language) {
~~~[/code]
@JokerGermany: Die Zeichenfolge `if (foo && bar >= 2) { /* (...) */ }`{:.language-javascript} hatte ich eigentlich nur zur Veranschaulichung eingefügt.
Was du nun erreicht hast ist, dass das JS einfach gar nicht mehr ausgeführt wird.
> Variante 3 ist bei XHTML als text/html keine Lösung. Sie stellt zwar den Validator zufrieden und ist gültiges XML, aber das Dokument ist dann nicht mehr als HTML (text/html) verarbeitbar. Der HTML-Parser ersetzt Entity-Referencen innerhalb von <script>...</script> nicht - weil, wie du sagst, der Inhalt als CDATA und nicht als PCDATA verarbeitet wird. Daher sollte man diese Schreibweise vermeiden.
Du wirst sicher recht haben, aber das ist dann wohl ein Fehler des Parsers. Denn unabhängig davon welchen MIME-Type ich angebe sollte der Dokumententyp wohl berücksichtigt werden, wenn er denn schonmal angegeben ist. Und dieser Dokumententyp sagt nunmal laut Spec "da ist PCDATA drinne".
Ja ich weiß, ich argumentiere mal wieder Realitätsfern, aber HTML5 und wenn ich mich recht erinnere auch XHTML2 haben beide Bedeutungs-Änderungen an bestehenden Elementen durchgeführt. Diese haben idR keine Auswirkungen auf die Darstellung, aber Parser sollten das berücksichtigen. Genauso wie Parser Elemente ignorieren sollten, welche im angegebeben Typ nicht existieren (ob das geschieht weiß ich nicht, müsste man mal ausprobieren und z.B. <footer> in HTML3 oder 4 -Dokumenten verwenden oder so).
Immerhin hat mich noch kein HTML-Parser oder Validator angemeckert wenn ich XML-Schreibweisen benutzt habe also att="att" oder />
--
sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ\_de:] zu:) fl:( ss:| ls:[ js:(