Sono sicuro che le sezioni <![CDATA[...]]>
possono essere utilizzate in XHTML5, ma che dire di HTML5?Devo usare <! [CDATA [...]]> in HTML5?
risposta
La struttura CDATA
non è affatto per HTML, è per XML.
A volte le persone li utilizzano in HTML all'interno dei tag script
perché rimuovono la necessità che escano determinati caratteri speciali. Tuttavia non è un requisito (per HTML 4 o 5).
Edit: Questo è dove abbiamo aperto che in realtà ammuffito vecchio vaso di Pandora dal 2002 oltre se si sta inviando XHTML come text/html
o come application/xhtml+xml
come se fossi “presunto” per :-)
Forse si veda: http://wiki.whatwg.org/wiki/HTML_vs._XHTML
< [CDATA [...]] > è un commento fasullo.
In HTML, <script>
è già protetto - questo è il motivo per cui a volte si deve essere scritto come a = "<" + "/script>"
, per evitare di confondere il browser. Si noti che il codice è valido all'esterno di un CDATA in HTML.
Penso che il modo migliore per sfuggire al tag di chiusura sia "<\/script>". Ho letto che alcuni parser controllano solo "", non "" – marcus
@marcus Sei corretto e che '' è l'unico token speciale in questo contesto.Le mie * nuove * risposte sull'argomento sono d'accordo in quanto ho avuto la mia conoscenza aggiornata nel tempo ;-) Aggiornerò questo. Detto questo, sembra comune avere la divisione ' scr' +' ipt> ', e non conosco un browser * mainstream * in cui non funziona ... –
Il le specifiche sembrano chiarire questo problema. i tag script e di stile sono considerati "elementi di testo non elaborati". CDATA non è necessario o consentito per loro. CDATA viene utilizzato solo con "contenuto estraneo", ad esempio MathML e SVG. Nota che ci sono alcune restrizioni su cosa può andare nel tag dello script - in pratica non puoi inserire qualcosa come var x = '</script>'
perché questo chiuderà il tag e dovrà essere diviso come prima nella sua risposta. http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictions
Dalla stessa pagina @pst linked to:
Element-specific parsing for
script
andstyle
tags, Guida per XHTML-HTML compatibilità: "Il seguente codice con fuga in grado di garantire sceneggiatura e elementi di stile funzionerà sia in XHTML e HTML, tra cui anziani i browser."
all'indietro la massima compatibilità:
<script type="text/javascript"><!--//--><![CDATA[//><!--
...
//--><!]]></script>
Più semplice versione, una sorta di incompatibile con "i browser molto vecchi":
<script>//<![CDATA[
...
//]]></script>
Quindi, CDATA
può essere utilizzato in HTML5, e si consiglia di la guida per compatibilità XHTML-HTML. Questo utile per polyglot HTML/XML/XHTML pages, che vengono creati e analizzati come XML durante lo sviluppo, ma pubblicati come HTML5 per una migliore compatibilità cross-browser. Polyglot pages has their benefits e l'ho usato io stesso, poiché è molto più facile eseguire il debug di XML/XHTML5. Google Chrome, ad esempio, genererà un errore per XML/XHTML5 non valido (incluso ad esempio character escaping), mentre la stessa pagina pubblicata come HTML5 "funzionerà", ovvero "probabilmente funzionerà".
i commenti all'interno di un tag script sono necessari se vuoi supportare alcuni browser di 20 anni, ovvero NSCA Mosaic o Netscape 1 ... –
- 1. Devo usare l'HTML <button> o <input>?
- 2. Come rimuovere `// <! [CDATA [` e end `//]]>`?
- 3. Come analizzare XML per <![CDATA[]]>
- 4. contenuti Estrazione da <![CDATA []]>
- 5. Devo abbandonare Adobe Flash per HTML5 e <canvas>?
- 6. <main> all'interno <article> in HTML5
- 7. Devo usare i tag <section> all'interno di <aside>?
- 8. HTML5 <video> callback?
- 9. HTML5, <section> nell'elenco non ordinato
- 10. Come posso usare <sup></sup> in <option></option> in Html
- 11. Qual è la differenza tra <article> e <section> in html5
- 12. come usare>< <= > = come funzioni?
- 13. Codifica CDATA XML
- 14. HTML5 <audio> tag su Android
- 15. Devo cancellare il vettore <string>?
- 16. Javascript HTML5 <audio> sorgente multipla
- 17. LXML uccide le mie sezioni CDATA
- 18. HTML5 tag <meter> attributi
- 19. <Header> tag HTML5 all'interno div
- 20. Devo dichiarare manualmente> = e <= operatori?
- 21. Come posso creare un SoapVar contenente CDATA con XML?
- 22. Devo usare std :: unique_ptr <T> in una variabile membro std :: vector nella mia classe?
- 23. audio in streaming con html5 `<audio>` tag
- 24. Più <header> e <footer> in un documento HTML5
- 25. Uso di <picture> all'interno dell'elemento <figure> in HTML5?
- 26. HTML5 FileAPI + FileReader - feed <object> con SWF
- 27. ><<..>> = in uscita
- 28. Perché dovrei usare IQueryable <T> sopra Lista <T> in LINQ to SQL
- 29. Il tag HTML5 <video> in Chrome non funziona
- 30. HTML5 <audio> tag non funziona in Android Webview
Sto inviando HTML (non XHTML) e lo voglio. Thxs per la risposta :) –
Posso usare 'CDATA' all'interno di un tag' pre' quindi non devo correggere tutte le parentesi angolari? – gman