2012-01-01 72 views
23

我有我的网站Facebook的Like按钮,因此也对<html>标签xmlns:fb属性:是否可以验证xmlns:fb(Facebook)属性?

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

然而,通过W3C验证运行我的网站的时候,我得到这些错误:

第2行第61列:属性xmlns:fb在此处不允许。

第2行第61列:具有本地名称的属性xmlns:fb不可序列化为XML 1.0。

第222行,第72列:属性fb:like:layout不可序列化为XML 1.0。

第222行,第72列:属性fb:like:布局此时不允许元素a。

这是我的理解是使用xmlns:fb属性增加fb到文档的命名空间,因此使用任何<fb:元素是有效的。情况并非如此吗?这是HTML5问题吗?

我也有类似的验证错误与Twitter按钮,是否有可能修复这些以及?

223行53列:属性tw:via不可序列化为XML 1.0。

223行,列53:属性tw:通过元素a在此时不允许。

回答

8

有没有办法来验证xmlns:fb与HTML5。

但是,您可以使用新的data-... -attributes,这是由Facebook的加入是有效的HTML5,描述here

这是你如何使用这个扩展在HTML5(假设所有的代码是在body元素)的例子:

<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> 

这将是等效的XHTML代码:

<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

或者您现在可以使用prefix mappings

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

对我不起作用,还没有验证html5 – 2013-02-24 21:46:27

+0

你正在使用哪个验证器?尝试http://html5.validator.nu – 2013-02-25 09:46:10

+0

工程..搞笑我,我没有删除其他属性。谢谢 – 2013-02-25 11:32:00