Facebookのfb:like要素を設置したページを(X)HTML validにする方法

Facebookのfb:like要素を設置したページを(X)HTML validにする方法

Posted at June 3,2011 1:55 AM
Tag:[Facebook, like]

Facebookのfb:likeタグをブログに設置したときに、そのページを(X)HTML validにする方法です。

1.概要

いいね!ボタン設置用のコードはiframe要素が用意されていますが、「Send Button」をチェックしている場合、スクリーンショットのようにfb:like要素しかありません。

いいね!ボタン設置用のコード

fb:like要素を設置したページは、The W3C Markup Validation Serviceなどではvalidな(X)HTMLとなりません。

2.対処

validな(X)HTMLにするためには、「Send Button」のチェックをはずして、iframe要素を取得するしかありません。下のコードはMovable Typeのブログ記事ページへの設置例です。

<iframe src="http://www.facebook.com/plugins/like.php?href=<$mt:EntryPermalink$>&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:30px"></iframe>

お詫び:当初投稿していた内容は以下ですが、このカスタマイズではvalidな(X)HTMLになりません(The W3C Markup Validation ServiceではOKになりますが、script要素が評価される前の結果を表示するためです)。誤った情報を公開してしまい、大変申し訳ございませんでした。またご指摘くださった皆様、ありがとうございました。

2.カスタマイズ

validな(X)HTMLにするには、fb:likeタグを次のようなJavaScriptに置き換えます。コードはMovable Typeのブログ記事ページへの設置例です。

<div class="fblike" id="fblike<mt:EntryID>"></div>
<script type="text/javascript">
//<![CDATA[
var c = document.getElementById('fblike<mt:EntryID>');
var e = document.createElement('fb:like');
e.setAttribute('href', '<mt:EntryPermalink>');
e.setAttribute('send', 'false');
e.setAttribute('width', '450');
e.setAttribute('show_faces', 'true');
e.setAttribute('font', 'verdana');
c.appendChild(e);
//]]>
</script>

setAttributeの内容は適宜変更してください。

3.参考サイト

参考サイトは以下です。ありがとうございました。

W3C Validated FB (Facebook) Like Button
W3C Validated FB (Facebook) Like Button

上記のページをThe W3C Markup Validation Serviceでチェックしてみてください。

関連記事
zenback
人気エントリー
トラックバックURL


コメント

invalidなコードはスクリプトで置き換えてもinvalidなままです。
コードの評価はスクリプト実行後に再評価されるからです。
http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.4

Validatorはスクリプト実行前の状態でしか見てないというだけのコト。

[1] Posted by securecat : June 4, 2011 12:48 AM

>securecatさん
こんばんは。
ご指摘くださりありがとうございました。
記事にお詫びと訂正の文章を掲載致しました(本文はこのまま残しておきたいと思います)。
それではよろしくお願い致します。

[2] Posted by yujiro logo : June 4, 2011 2:28 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)