2010-11-18 35 views
7

Tôi sử dụng Javascript nội tuyến khá nhiều, thường là trong các chủ đề WordPress mà tôi tạo ra. Tôi đã không nghe nói về gói Javascript nội tuyến trong //<![CDATA[ ... //]]> cho đến một vài tháng trước, và tôi đã làm công cụ này ở một mức độ công bằng của năng lực trong một vài năm.CDATA có thực sự cần thiết không?

Tôi googled xung quanh và tôi nghe rằng mọi người sử dụng điều này vì Javascript của họ không xác thực khác. Tôi sử dụng loại tài liệu 1.0 xHTML nghiêm ngặt và chưa bao giờ gặp sự cố khi xác thực đánh dấu của mình. Có phải vì tôi sử dụng jquery hay vì tôi thường chỉ có một vài dòng mã để kích hoạt plugin? Hoặc là validator w3 được khoan dung trong lĩnh vực này? Có bằng chứng nào về tác động chức năng khi không sử dụng các dấu hiệu CDATA này không?

+0

Ví dụ, tôi nghĩ rằng một số phân tích cú pháp có thể vướng vào ít hơn và dấu lớn hơn (< and >) trong JavaScript mã không nằm trong phần CDATA. –

+2

Điều này có vẻ là một bản sao của http://stackoverflow.com/questions/66837/when-is-a-cdata-section-necessary-within-a-script-tag. Có một số câu trả lời hay ở đó. –

+0

@Gintautas - parsers * nên * chuyến đi trên chúng, trong số những thứ khác. Câu trả lời của Jost là một câu trả lời hay. – Quentin

Trả lời

0

Tôi nghĩ bạn có ý định sử dụng nó để tuân thủ XHTML Strict. nếu không thì JavaScript sẽ không phải là XML hợp lệ.

4

Hôm nay chỉ thực sự bắt buộc nếu bạn muốn tài liệu XHTML của mình hợp lệ. ví dụ. một cái gì đó đơn giản như này là không hợp lệ vì <p> thẻ trong javascript với CDATA nó xác nhận

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>foo</title> 
    <script type="text/javascript"> 
    alert("<p>Hallo</p>"); 
    </script> 
</head> 
<body> 
</body> 
</html> 
+1

Không sao, vì vậy chính nội dung của tập lệnh nội tuyến tự quyết định xem trang có được xác thực hay không, điều cần biết. Tôi nghĩ rằng tôi sẽ chỉ bắt đầu liên kết với công cụ của tôi bên ngoài ngay cả khi nó chỉ là một cuộc gọi đến một vài plugin, nó có vẻ sạch hơn theo cách này. Cảm ơn bạn đã trả lời nhanh (Wow!) – Daniel

Các vấn đề liên quan