webForumDet fria alternativet

varför // <![CDATA[ i javascript?

9 svar · 435 visningar · startad av Jon

JonMedlem sedan juli 20011 304 inlägg
#1

Har sett detta i javascript här och där.

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

         ...

        // ]]>
</script>

Är CDATA något som man bör ha med eller?

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Ser ut som något IE-kraft.
Kan säkert tas bort.

@ndersMedlem sedan juni 200032 969 inlägg
#3

Det är XML.

Jag gissar att det har med XHTML-validering att göra.

Mvh

JonMedlem sedan juli 20011 304 inlägg
#4

Jag gissar att det har med XHTML-validering att göra.

Jag med :)

Men exakt vad, tro?

dectgapMedlem sedan sep. 20021 655 inlägg
#5

Det betyder

<script type="text/javascript">
        // Det som följer är bara en massa tecken som inte på något sätt ska tolkas som XML.

         ...

        // Nu fortsätter vi tolka tecknen som XML.
</script>
silfverMedlem sedan apr. 200312 679 inlägg
Peter SMedlem sedan dec. 20025 483 inlägg
#7

Red. Något sent ute ;)

CDATA står för Character Data vilket betyder att inom dessa element finns det textdata som inte skall parsas av XML-tolken. Motsatsen är PCDATA (Parsed Character Data). Anledningen till att man använder dem är att man kanske använder vissa tecken på ställen ('<', '>', '&', '--' o.s.v.) som en XML-parser inte gillar, t.ex. i JavaScript-kod. Så för att undvika fel placerar man dessa tecken i CDATA-sektioner.

Orsaken till varför CDATA-taggarna bortkommenteras är att de ej förstås av skriptmotorn.

:)

RGBMedlem sedan dec. 1999419 inlägg
#8

Andra anledningar till att använda CDATA-sektioner i script-block är för att förhindra upplösning av entities samt att slipa andvända de samma vid tex test av vilkor.

RGBMedlem sedan dec. 1999419 inlägg
#9

Dessutom förhindrar det att xmlparsers rationaliserar bort "whitespace" dvs, av två eller flera intilliggande blanksteg i en javascript sträng skulle bara ett vara kvar när scriptet nådde scriptmotorn.

JonMedlem sedan juli 20011 304 inlägg
#10

Tack för bra förklaringar :)

128 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)