Jestem prawie pewien, że <![CDATA[...]]>
sekcje mogą być używane w XHTML5, ale co z HTML5?
80
CDATA
Struktura nie jest tak naprawdę dla HTML w ogóle, to dla XML.
Ludzie czasami używają ich w HTML wewnątrz script
tagów, ponieważ eliminuje to potrzebę ucieczki przed niektórymi znakami specjalnymi. Nie jest to jednak żaden wymóg (dla HTML 4 lub 5).
Edycja: W tym miejscu otwieramy tę naprawdę spleśniałą, starą puszkę robaków z 2002 roku, aby dowiedzieć się, czy wysyłasz XHTML w taki text/html
sposób, application/xhtml+xml
jak „powinien” :-)
CDATA
wewnątrzpre
tagu, aby nie musieć naprawiać wszystkich nawiasów kątowych?Z tej samej strony @pst połączonej z :
Maksymalna kompatybilność wsteczna:
<script type="text/javascript"><!--//--><![CDATA[//><!-- ... //--><!]]></script>
Prostsza wersja, w pewnym sensie niezgodna z „znacznie starszymi przeglądarkami”:
<script>//<![CDATA[ ... //]]></script>
Dlatego
CDATA
może być używany w HTML5 i jest zalecany w Poradniku dotyczącym zgodności XHTML-HTML . Jest to przydatne w przypadku stron poliglotowych HTML / XML / XHTML , które są tworzone i analizowane jako XML podczas programowania, ale służyły jako HTML5 dla lepszej kompatybilności z różnymi przeglądarkami. Strony Polyglot mają swoje zalety i sam z tego korzystałem, ponieważ znacznie łatwiej jest debugować XML / XHTML5. Na przykład Google Chrome zgłosi błąd dotyczący nieprawidłowego XML / XHTML5 (w tym na przykład zmiany znaczenia znaków ), podczas gdy ta sama strona wyświetlana jako HTML5 będzie „po prostu działać”, czyli „prawdopodobnie będzie działać”.źródło
Wydaje się, że specyfikacja wyjaśnia tę kwestię. Znaczniki skryptu i stylu są traktowane jako „nieprzetworzone elementy tekstowe”. CDATA nie jest im potrzebne ani dozwolone. CDATA jest używane tylko z „obcą treścią” - tj. MathML i SVG. Zwróć uwagę, że istnieją pewne ograniczenia co do tego, co może
var x = '</script>'
znajdować się w tagu skryptu - w zasadzie nie możesz tam umieszczać czegoś podobnego, ponieważ zamknie to tag i musi zostać podzielone tak, jak pst zanotowano w jego odpowiedzi. http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictionsźródło
Być może zobacz: http://wiki.whatwg.org/wiki/HTML_vs._XHTML
W HTML
<script>
jest już chroniony - dlatego czasami musi być napisany jakoa = "<" + "/script>"
, aby uniknąć dezorientacji przeglądarki. Zauważ, że kod jest ważny poza CDATA w HTML.źródło
</
jest to jedyny specjalny znak w tym kontekście. Moje nowsze odpowiedzi na ten temat są zgodne, ponieważ moja wiedza była aktualizowana z biegiem czasu ;-) Zaktualizuję to. Biorąc to pod uwagę, wydaje się, że często występuje podział</scr
+ipt>
, a nie znam głównej przeglądarki, w której to nie działa ...