in JS in ner Zeichenkette kein </script> erlaubt????
levu
- html
Hallo,
wenn ich folgenden Quelltext habe (im Head):
<script type="text/javascript">
/*<![CDATA[*/
var variable = '</script>';
/*]]>*/
</script>]
dann bekomme ich im Browser [1] folgende Ausgabe:
'; /*]]>*/
Wie kann ich, ohne das </script> zu zerstückeln, es in eine Zeichenkette packen? Ist dieses Verhalten der Browser richtig?
[1] (Opera 10.0, FF3, IE7, Chrome 1.x (neueste), Safari 3.x (auch neuester))
mfg, Flo
Hi,
Wie kann ich, ohne das </script> zu zerstückeln, es in eine Zeichenkette packen?
gar nicht. Nicht, solange sich dieser JavaScript-Code in einem HTML-Dokument befindet.
Ist dieses Verhalten der Browser richtig?
Absolut. Die Zeichenkette "</" beendet einen <script>-Block. Gängiges Vorgehen: Escapen des Slashes.
Cheatah
Hallo Cheatah!
Absolut. Die Zeichenkette "</" beendet einen <script>-Block. Gängiges Vorgehen: Escapen des Slashes.
Ist in dem Fall sein CDATA-Block nicht falsch eingeleitet?
Viele Grüße aus Frankfurt/Main,
Patrick
/*<![CDATA[*/
Ist in dem Fall sein CDATA-Block nicht falsch eingeleitet?
Nein, warum?
Mathias
Hallo,
| | /*<![CDATA[*/
| Ist in dem Fall sein CDATA-Block nicht falsch eingeleitet?Nein, warum?
Weil das mit dem </ in einem CDATA-Block eigentlich nicht zählen. Wenn es ]]> wäre und nicht </ , dann würde ich es verstehen.
mfg, Flo
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
Hallo,
Du schreibst zwar XHTML, aber lieferst es mit dem MIME-Typ text/html an die Browser.
Ah, ok!! Danke!
mfg, Flo
Hallo molily!
»» > > /*<![CDATA[*/
»» Ist in dem Fall sein CDATA-Block nicht falsch eingeleitet?
Nein, warum?
Hast Recht... irritiert hat mich das durch [ code lang=html] verursachte, falsche Syntaxhighlighting _und_ die eckige Klammer nach dem (echten) schließenden </script>...
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo,
_und_ die eckige Klammer nach dem (echten) schließenden </script>...
die war ungewollt -.-
mfg, Flo