Czy powinienem używać w HTML5?
Jestem pewien, że sekcje <![CDATA[...]]>
mogą być używane w XHTML5, ale co z HTML5?
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ś": -)
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
istyle
, 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ć".
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
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.