web-dev-qa-db-ja.com

xmlns:fb(Facebook)属性を検証することは可能ですか?

私のサイトにはFacebookの「いいね」ボタンがあり、そのためxmlns:fb属性の<html> 鬼ごっこ:

<!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:layoutは、この時点では要素aでは許可されていません。

xmlns:fb属性はfbをドキュメントの名前空間に追加するため、<fb:要素は有効です。そうではありませんか? HTML5の問題ですか?

Twitterボタンにも同様の検証エラーがありますが、それらも修正できますか?

行223、列53:属性tw:viaはXML 1.0としてシリアル化できません。

行223、列53:属性tw:viaは、この時点では要素aで許可されていません。

24
DisgruntledGoat

検証する方法はありませんxmlns:fb HTML5。

ただし、新しいdata-...-属性。Facebookによって追加され、有効なHTML5です ここ で説明されています。

これは、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>
8
copy

または、 プレフィックスマッピング を使用できます。

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