Frage

Sind CDATA-Tags immer notwendig in Script-Tags und wenn ja, wann?

Mit anderen Worten, wann und wo ist dies:

<script type="text/javascript">
//<![CDATA[
...code...
//]]>
</script>

vorzuziehen folgt aus:

<script type="text/javascript">
...code...
</script>
War es hilfreich?

Lösung

Ein CDATA-Abschnitt ist erforderlich, wenn Sie benötigen, um Ihr Dokument als XML zu analysieren (zB wenn eine XHTML-Seite wird als XML interpretiert) und Sie wollen in der Lage seine wörtlichen i<10 und a && b zu schreiben statt i&lt;10 und a &amp;&amp; b , wie XHTML wird den JavaScript-Code als geparste Zeichendaten analysieren als Zeichendaten standardmäßig gegenüber. Dies ist nicht ein Problem mit Skripten, die in externen Dateien gespeichert sind, sondern für jede Inline JavaScript in XHTML Sie wahrscheinlich wollen einen CDATA-Abschnitt verwenden.

Beachten Sie, dass viele XHTML-Seiten wurden nie als XML analysiert werden soll, in dem Fall wird dieser ein Problem nicht sein.

Für eine gute Zuschreibung zu diesem Thema finden Sie unter https://web.archive.org/web/20140304083226/http://javascript.about.com/library/blxhtml.htm

Andere Tipps

Wenn Browser behandelt das Markup als XML:

<script>
<![CDATA[
    ...code...
]]>
</script>

Wenn Browser behandelt das Markup als HTML:

<script>
    ...code...
</script>

Wenn Browser das Markup als HTML behandeln und Sie möchten Ihre XHTML 1.0 Markup (zum Beispiel) zu validieren.

<script>
//<![CDATA[
    ...code...
//]]>
</script>

Es ist eine X (HT) ML Sache. Wenn Sie Symbole wie < und > im JavaScript, z.B. zwei ganze Zahlen für den Vergleich, hätte dies wie XML analysiert werden, so würden sie als Anfang oder das Ende eines Tags markieren.

Die CDATA bedeuten, dass die folgenden Zeilen (alles bis zu dem ]]> nicht XML ist und somit nicht auf diese Weise analysiert werden soll.

Do nicht verwenden CDATA in HTML4 aber Sie sollte verwenden CDATA in XHTML und müssen verwenden CDATA in XML, wenn Sie wie unescaped Symbole < und>.

CDATA gibt an, dass der Inhalt innerhalb von nicht XML.

Hier ist eine Erklärung auf wikipedia

Wenn Sie sich für strenge XHTML Compliance werden, müssen Sie die CDATA so weniger als und Et-Zeichen werden nicht als ungültige Zeichen gekennzeichnet.

, um XML-Fehler bei XHTML-Validierung zu vermeiden.

CDATA sagt den Browser, um den Text anzuzeigen, wie und nicht als HTML zu machen.

CDATA gibt an, dass der Inhalt innerhalb von nicht XML.

CDATA ist notwendig, in jedem XML-Dialekt, da Text in einem XML-Knoten als untergeordnetes Element behandelt wird, bevor sie als JavaScript ausgewertet. Dies ist auch der Grund, warum JSLint beschwert über die < Zeichen in regulären Ausdrücken.

Referenzen

Wenn Sie wollen, dass es zu validieren (in XML / XHTML - danke, < a href = "https://stackoverflow.com/users/6436/loren-segal"> Loren Segal ).

Auf diese Weise älterer Browser analysiert nicht den Javascript-Code und die Seite nicht bricht.

Abwärtskompatibilität. Muss ich liebe es.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top