2012-01-01 39 views
23

Tôi có một nút Facebook Like trên trang web của tôi và như vậy cũng có xmlns:fb thuộc tính trên thẻ <html>:Có thể xác thực thuộc tính xmlns: fb (Facebook) không?

<!DOCTYPE html> 
<html lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> 

Tuy nhiên, khi chạy trang web của tôi qua W3C validator, tôi nhận được các lỗi này:

Dòng 2, Cột 61: Thuộc tính xmlns: fb không được phép tại đây.

Dòng 2, Cột 61: Thuộc tính có tên địa phương xmlns: fb không thể tuần tự hóa dưới dạng XML 1.0.

Dòng 222, cột 72: Thuộc tính fb: như: bố cục không thể tuần tự hóa được dưới dạng XML 1.0.

Dòng 222, cột 72: Thuộc tính fb: như: bố cục không được phép trên phần tử a tại thời điểm này.

Đó là sự hiểu biết của tôi rằng việc sử dụng các thuộc tính xmlns:fb thêm fb đến không gian tên tài liệu, do đó sử dụng bất kỳ yếu tố <fb: là hợp lệ. đây không phải là trường hợp à? Đây có phải là vấn đề về HTML5 không?

Tôi cũng có lỗi xác thực tương tự với nút Twitter, bạn có thể sửa chúng không?

Dòng 223, cột 53: Thuộc tính tw: qua không thể tuần tự hóa như XML 1.0.

Dòng 223, Cột 53: Thuộc tính tw: thông qua không được phép trên phần tử tại thời điểm này.

Trả lời

8

Không có cách nào để xác thực xmlns:fb bằng HTML5.

Tuy nhiên, bạn có thể sử dụng các thuộc tính mới data-..., được thêm bởi Facebook và là HTML5 hợp lệ, như được mô tả here.

Đây là một ví dụ về cách bạn có thể sử dụng phần mở rộng này trong HTML5 (giả định tất cả các mã là trong các yếu tố cơ thể):

<h3>Members</h3> 
<embed data-fb="login-button" data-show-faces="true" /> 
<h3>Recent activity</h3> 
<embed data-fb="activity" data-site="***" data-width="200" data-header="false" 
data-border_color="#fff" data-recommendations="false" /> 
<div id="fb-root"></div> 
<!-- the JavaScript API --> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<!-- the extention script from this article --> 
<script src="/scripts/fb.js"></script> 
<script> 
//<![CDATA[ 
FB.init({apiKey: '***', appId: '***', status: true, cookie: true, fbml5: true}); 
//]]> 
</script> 

Đây sẽ là mã XHTML tương đương:

<h3>Members</h3> 
<fb:login-button show-faces="true" /> 
<h3>Recent activity</h3> 
<fb:activity site="***" width="200" header="false" 
border_color="#fff" recommendations="false" /> 
<div id="fb-root"></div> 
<!-- the JavaScript API --> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<!-- the extention script from this article --> 
<script src="/scripts/fb.js"></script> 
<script> 
//<![CDATA[ 
FB.init({apiKey: '***', appId: '***', status: true, cookie: true, fbml5: true}); 
//]]> 
</script> 
26

Hoặc bây giờ bạn có thể sử dụng prefix mappings.

<!DOCTYPE html> 
<html lang="en" prefix="fb: http://www.facebook.com/2008/fbml"> 
+0

không hoạt động đối với tôi, vẫn chưa được xác thực html5 –

+0

Bạn đang sử dụng trình xác thực nào? thử http://html5.validator.nu –

+0

hoạt động .. vui tôi, tôi đã không xóa các thuộc tính khác. Cảm ơn –

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