Tôi chắc chắn các phần <![CDATA[...]]>
có thể được sử dụng trong XHTML5, nhưng còn HTML5 thì sao?Tôi có nên sử dụng <! [CDATA [...]]> trong HTML5 không?
Trả lời
Cấu trúc CDATA
không thực sự là HTML, nó dành cho XML.
Mọi người đôi khi sử dụng chúng trong HTML bên trong script
thẻ vì nó loại bỏ sự cần thiết để chúng thoát khỏi các ký tự đặc biệt nhất định. Tuy nhiên, đó không phải là một yêu cầu (cho cả HTML 4 hoặc 5).
Edit: Đây là nơi chúng ta mở rằng thực sự mốc lon cũ của sâu từ năm 2002 về việc liệu bạn đang gửi XHTML như text/html
hoặc như application/xhtml+xml
như bạn đang “giả” để :-)
Có lẽ thấy: http://wiki.whatwg.org/wiki/HTML_vs._XHTML
< [CDATA [...]] > là một lời nhận xét không có thật.
Trong HTML, <script>
đã được bảo vệ - đây là lý do tại sao đôi khi phải được viết là a = "<" + "/script>"
, để tránh nhầm lẫn giữa trình duyệt. Lưu ý rằng mã hợp lệ bên ngoài CDATA bằng HTML.
Tôi nghĩ cách tốt nhất để thoát thẻ kết thúc là "<\/script>". Tôi đã đọc rằng một số trình phân tích cú pháp chỉ kiểm tra "", không phải "" – marcus
@marcus Bạn đúng và '' là mã thông báo đặc biệt duy nhất trong ngữ cảnh này.My * mới hơn * câu trả lời về chủ đề concur như tôi đã có kiến thức của tôi cập nhật theo thời gian ;-) Tôi sẽ cập nhật này. Điều đó đang được nói, có vẻ như phổ biến là có sự phân chia ' scr' +' ipt> ', và tôi không biết về một trình duyệt * chính thống * mà nó không hoạt động ... –
Các spec dường như làm sáng tỏ vấn đề này. thẻ tập lệnh và kiểu được coi là "phần tử văn bản thô". CDATA không cần thiết hoặc được phép cho chúng. CDATA chỉ được sử dụng với "nội dung nước ngoài" - tức là MathML và SVG. Lưu ý rằng có một số hạn chế cho những gì có thể đi trong thẻ script - về cơ bản bạn không thể đặt một cái gì đó như var x = '</script>'
trong đó bởi vì nó sẽ đóng thẻ và cần phải được chia như pst lưu ý trong câu trả lời của mình. http://www.w3.org/TR/html5/syntax.html#cdata-rcdata-restrictions
Từ cùng một trang @pst linked to:
Element-specific parsing for
script
andstyle
tags, Hướng dẫn XHTML-HTML tương thích: "Các mã sau đây với thoát có thể đảm bảo kịch bản và các yếu tố phong cách sẽ làm việc trong cả hai XHTML và HTML, bao gồm cả cũ trình duyệt. "
ngược tối đa khả năng tương thích:
<script type="text/javascript"><!--//--><![CDATA[//><!--
...
//--><!]]></script>
đơn giản hơn phiên bản, loại không phù hợp với "trình duyệt cũ hơn nhiều":
<script>//<![CDATA[
...
//]]></script>
Vì vậy, CDATA
thể được sử dụng trong HTML5, và nó được đề nghị trong Hướng dẫn về khả năng tương thích XHTML-HTML. Điều này hữu ích cho polyglot HTML/XML/XHTML pages, được tạo và phân tích cú pháp dưới dạng XML trong quá trình phát triển, nhưng được phân phát dưới dạng HTML5 để có khả năng tương thích tốt hơn giữa các trình duyệt. Polyglot pages has their benefits và tôi đã tự sử dụng bản thân này, vì việc gỡ lỗi XML/XHTML5 dễ dàng hơn nhiều. Google Chrome, ví dụ, sẽ ném một lỗi cho XML/XHTML5 không hợp lệ (bao gồm ví dụ character escaping), trong khi cùng một trang được phân phát dưới dạng HTML5 sẽ "chỉ hoạt động" hay còn gọi là "có thể hoạt động".
các ý kiến trong một thẻ script là cần thiết nếu bạn muốn hỗ trợ một số trình duyệt cũ 20 năm, đó là NSCA Mosaic hoặc Netscape 1 ... –
- 1. Tôi có nên sử dụng HTML <button> hoặc <input> không?
- 2. Tôi có nên sử dụng boost :: ptr_vector <T> hoặc vector <boost :: shared_ptr <T>>?
- 3. Khi nào nên sử dụng <%# ... %> và <%= ... %>?
- 4. Tại sao tôi nên sử dụng <ARGV> hoặc <> thay vì <STDIN> trong Perl?
- 5. Tôi có nên xóa vector <string> không?
- 6. Cách xóa `// <! [CDATA [` và end `//]]>`?
- 7. nội dung Extracting từ <![CDATA []]>
- 8. Sử dụng <picture> bên trong <figure> yếu tố trong HTML5?
- 9. Html bên trong XML. Tôi có nên sử dụng CDATA hoặc mã hóa HTML
- 10. Sử dụng chính xác HTML5 <hr> thẻ
- 11. Tại sao tôi nên sử dụng IQueryable <T> qua Danh sách <T> trong LINQ to SQL
- 12. Cách xóa không gian giữa <svg> và <td> trong HTML5?
- 13. html5 <canvas> framerate
- 14. Tôi nên làm gì để sử dụng Tác vụ <T> trong .NET 2.0?
- 15. Tôi có nên sử dụng^và $ trong xác thực mẫu regex đầu vào html5 không?
- 16. Cách phân tích cú pháp XML cho <![CDATA[]]>
- 17. Khi nào tôi nên sử dụng html5 sessionStorage?
- 18. Tôi có nên đặt Google Analytics JS vào <head> hoặc vào cuối <body> không?
- 19. HTML ngữ nghĩa: Tôi có nên sử dụng thẻ <nav> cho một đám mây thẻ không?
- 20. Tôi có nên sử dụng jQuery.each() không?
- 21. Tôi có nên sử dụng ProGuard không?
- 22. Tôi có thể áp dụng thuộc tính bắt buộc cho các trường <select> trong HTML5 không?
- 23. Khi nào tôi nên sử dụng HTML5 Microdata cho SEO?
- 24. Tôi có nên sử dụng HttpRuntime.Cache không?
- 25. Tôi có thể tạo SoapVar chứa CDATA bằng XML bằng cách nào?
- 26. HTML5 - Hiệu chỉnh việc sử của <article> thẻ
- 27. sự khác nhau giữa boost :: pool <> :: malloc và boost :: pool <> :: ordered_malloc, và khi nào tôi nên sử dụng boost :: pool <> :: ordered_malloc?
- 28. HTML5 <audio> thẻ trên Android
- 29. Tôi có thể sử dụng <%= ... %> để đặt thuộc tính điều khiển trong ASP.NET không?
- 30. sử dụng Semantic của <nav> trong HTML5 với yếu tố hình thức tìm kiếm
Tôi đang gửi HTML (không phải XHTML) và tôi muốn điều đó. Thxs cho câu trả lời :) –
Có thể sử dụng 'CDATA' bên trong một thẻ' pre' vì vậy tôi không phải sửa tất cả các dấu ngoặc nhọn của mình? – gman