Czy powinienem używać w HTML5?

Jestem pewien, że sekcje <![CDATA[...]]> mogą być używane w XHTML5, ale co z HTML5?

 75
Author: Mike Samuel, 2010-07-21

4 answers

Struktura CDATA nie jest tak naprawdę dla HTML, tylko dla XML.

Ludzie czasami używają ich w HTML wewnątrz znaczników script, ponieważ eliminuje to konieczność ucieczki określonych znaków specjalnych. W żadnym wypadku nie jest to jednak wymóg (dla HTML 4 lub 5).

Edit: tutaj otwieramy tą naprawdę spleśniałą puszkę robaków z 2002 roku, czy wysyłasz XHTML jako text/html czy jako application/xhtml+xml tak jak "powinieneś": -)

 56
Author: hollsk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-08 16:31:22

Z tej samej strony @ pst linked to :

Parsowanie specyficzne dla elementu dla znaczników script i style, Guidance for xHTML-HTML compatibility: "poniższy kod z wycięciem może zapewnić, że elementy skryptu i stylu będą działać zarówno w XHTML, jak i HTML, w tym w starszych przeglądarkach."

Maksymalna kompatybilność wsteczna:

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

Prostsza wersja, trochę niezgodna z "znacznie starszymi przeglądarkami":

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

Więc, CDATA może być stosowany w HTML5 i jest to zalecane w wytycznych dotyczących zgodności xHTML-HTML. To przydatne dla polyglot HTML / XML / XHTML pages , które są tworzone i przetwarzane jako XML podczas tworzenia, ale służyły jako HTML5 dla lepszej kompatybilności między przeglądarkami. Polyglot pages ma swoje zalety i sam tego używałem, ponieważ znacznie łatwiej jest debugować XML / XHTML5. Na przykład Google Chrome wyświetli błąd nieprawidłowego XML/XHTML5 (w tym na przykład znak escaping ), podczas gdy ta sama strona serwowana jako HTML5 będzie "po prostu działać" aka "prawdopodobnie działać".

 22
Author: Joel Purra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:55:04

Spec zdaje się wyjaśniać ten problem. znaczniki skryptu i stylu są uważane za " surowe elementy tekstu."CDATA nie jest im potrzebne ani dozwolone. CDATA jest używany tylko z "obcymi treściami" - tj. MathML i SVG. Zauważ, że istnieją pewne ograniczenia co może iść w znaczniku script -- w zasadzie nie można umieścić czegoś takiego jak var x = '</script>' tam, ponieważ to zamknie znacznik i musi być podzielony jak PST zauważył w jego odpowiedzi. http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictions

 14
Author: rmarscher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-18 20:08:19

Zobacz też: http://wiki.whatwg.org/wiki/HTML_vs._XHTML

Jest fałszywym komentarzem.

W HTML, <script> jest już chroniony - dlatego czasami musi być zapisany jako a = "<" + "/script>", aby uniknąć mylenia przeglądarki. Zauważ, że kod jest poprawny poza A CDATA w HTML.

 5
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-23 19:11:19