Jestem prawie pewien, że <![CDATA[...]]>
sekcje mogą być używane w XHTML5, ale co z HTML5?
Jestem prawie pewien, że <![CDATA[...]]>
sekcje mogą być używane w XHTML5, ale co z HTML5?
Odpowiedzi:
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ątrz pre
tagu, aby nie musieć naprawiać wszystkich nawiasów kątowych?
Z tej samej strony @pst połączonej z :
Analiza poszczególnych elementów dla tagów
script
istyle
, Wskazówki dotyczące zgodności XHTML-HTML : „Poniższy kod ze znakami ucieczki 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, 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ć”.
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
Być może zobacz: http://wiki.whatwg.org/wiki/HTML_vs._XHTML
<! [CDATA [...]]> to fałszywy komentarz.
W HTML <script>
jest już chroniony - dlatego czasami musi być napisany jako a = "<" + "/script>"
, aby uniknąć dezorientacji przeglądarki. Zauważ, że kod jest ważny poza CDATA w HTML.
</
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 ...