2013-01-18 15 views
7

HTML của tôi gần như tuân thủ HTML5 theo Trình xác thực W3C, chỉ còn một lỗi: mã Javascript để định cấu hình các nút Google Plus."Nội dung văn bản của tập lệnh phần tử không có định dạng bắt buộc: Không gian, tab, dòng mới hoặc dấu gạch chéo mong muốn nhưng được tìm thấy {thay thế".

Cho dù tôi thêm CDATA hay không, lỗi "Nội dung văn bản của phần tử script không ở định dạng được yêu cầu: Mong đợi không gian, tab, dòng mới hoặc gạch chéo nhưng tìm thấy { thay thế." được hiển thị cho dòng này:

<script src="http://apis.google.com/js/plusone.js" type="text/javascript"> 
    {"lang":"en","parsetags":"explicit"} 
</script> 
+0

Có vẻ như bạn đang cố truyền một đối tượng không xác định. –

Trả lời

2

... Tôi vô cùng nghi ngờ bạn sẽ giành chiến thắng trong xác nhận chiến tranh, ở đây.

Nếu bạn có một khách hàng/ông chủ bị ám ảnh về việc xác thực (chứ không phải là mã rắn - vì bạn hoàn toàn có thể có mã mỏng manh, flaky, hợp lệ), thì bạn có thể yêu cầu họ bỏ g +, hoàn toàn.

Nhưng Google đang sử dụng thẻ tập lệnh đó để tải tệp của nó, tệp đó đang tìm thẻ tập lệnh cuối cùng được tải và sau đó sử dụng văn bản bên trong để định cấu hình chương trình.

Cú pháp hoàn toàn hợp lệ? Không thực sự, không.

Có lẽ họ có thể xem xét cố gắng làm việc trong các nhận xét JS, nhưng thực sự, Google sẽ thay đổi công cụ này thường xuyên, khi họ tiếp quản thế giới và phát triển lập trình web (angular.js là craaazy).

Mặc dù chúng không hoàn hảo, tôi nghi ngờ rằng mã của chúng bền hơn mã "mã được phê chuẩn bởi W3C được phê duyệt".

2

Thông báo lỗi là chính xác. Thẻ script có thuộc tính src được đặt can only contain documentation: khoảng trắng và nhận xét (/* ... */ hoặc //...).

Nếu bạn chỉ muốn tránh lỗi, bạn có thể thử tạo thẻ script với j, như trong asynchronous load example. Điều này không làm cho nó hợp lệ nhưng ít nhất là HTML được phục vụ ban đầu sẽ không có lỗi và trình duyệt tính hợp lệ sẽ không phàn nàn.