2010-11-18 28 views
7

Ich benutze Inline-Javascript ziemlich oft, in der Regel in WordPress-Themen, die ich mache. Ich hatte bis vor ein paar Monaten noch nie gehört, dass ich Javascript in einbinden würde, und ich mache das Zeug seit einigen Jahren auf einem fairen Niveau.Ist CDATA wirklich notwendig?

Ich googelte herum und ich höre, dass Leute dies verwenden, weil ihr Javascript nicht anders validiert. Ich verwende einen strikten 1.0 xHTML Doctype und hatte nie ein Problem, mein Markup zu validieren. Ist es, weil ich jquery verwende, oder weil ich normalerweise nur ein paar Zeilen Code habe, um ein Plugin zu aktivieren? Oder ist der W3-Validator in dieser Hinsicht nachsichtig? Gibt es Hinweise auf funktionelle Auswirkungen, wenn diese CDATA-Markierungen nicht verwendet werden?

+0

Zum Beispiel überprüft, ich denke einig Parser auf der Reise können weniger als und Größer-als-Zeichen (< and >) in JavaScript Code, der nicht in einem CDATA-Abschnitt ist. –

+2

Dies scheint ein Duplikat von http://stackoverflow.com/questions/66837/when-is-a-cdata-section-necessary-within-a-script-tag zu sein. Da gibt es einige gute Antworten. –

+0

@Gintautas - Parser * sollte * unter anderem auf ihnen stolpern. Josts Antwort ist eine gute. – Quentin

Antwort

0

Ich denke, Sie sollen es verwenden, um XHTML Strict zu entsprechen. Andernfalls wäre das JavaScript kein gültiges XML.

4

Heute ist es nur erforderlich, wenn Sie möchten, dass Ihr XHTML-Dokument gültig ist. z.B. etwas so Einfaches wie das ist ungültig, weil die <p>-Tags in der JavaScript mit dem CDATA es

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>foo</title> 
    <script type="text/javascript"> 
    alert("<p>Hallo</p>"); 
    </script> 
</head> 
<body> 
</body> 
</html> 
+1

Ah okay, also ist es der Inhalt des Inline-Skripts selbst, das entscheidet, ob die Seite validiert ist oder nicht, gut zu wissen. Ich denke, ich werde anfangen, extern mit meinen Sachen zu verlinken, auch wenn es nur ein Aufruf zu ein paar Plugins ist, es scheint auf diese Weise sauberer zu sein. Danke für die schnelle Antwort (Wow!) – Daniel

Verwandte Themen