« 1 つ新しい記事「」へ
1 つ古い記事「」へ »

減点されないソーシャルブックマークボタン

2011 年 11 月 24 日 木曜日

ソーシャルネットワークサービスやソーシャルブックマークなどのリンクを付与するボタンを設置しました。しかし、各サービスの公式ボタンをそのまま設置すると Another HTML-lint gateway でエラーが出てしまい減点されてしまいます。また、当ウェブサイト、ナメサメカリンチョは XHTML 1.0 Strict で書かれていますので、W3C の Markup Validation Service にもパスできません。公式のボタンを使用しなければ簡単に解決できるのですが、できるだけ公式ボタンを使用しつつ、かつ、極力減点されないように工夫してみました。今回設置したのは以下のサービスのソーシャルブックマークボタンです。

  • mixi
  • はてなブックマーク
  • twitter
  • Facebook
  • Google +1

mixi チェック

mixiチェック

登録

mixi のチェックボタンを設置するためには、まず、個人パートナー登録 を行う必要があります。携帯電話のメールアドレスが必要です。

キー発行

次に、パートナー・ダッシュボード の mixi Plugin で新規サービス追加をします。すると識別キーが発行されますのでこれをコピーしておいてください。

ボタン設置

設置したい場所に下記のように入力します。urlurlurl の部分にはチェックしたいページの URL を、keykeykey の部分に先ほどコピーした識別キーを代入してください。

URL はパーセントエンコードする必要がありますので、WordPress に mixi チェックボタンを設置する場合は下記のように入力してください。

この方法であれば、JavaScript を使う必要もありません。参考: mixi チェックボタンの技術仕様

はてなブックマークボタン

このエントリーをはてなブックマークに追加

はてなブックマークボタンは 通常のはてなブックマークボタン行動情報を取得しないはてなブックマークボタン がありますが、今回は後者を設置します。前者でも減点させないような設置は可能です。サイトのポリシーに応じて使い分けてください。

設置したい場所に下記のように入力します。urlurlurl の部分にはブックマークしたいページの URL を代入してください。

WordPress にはてなブックマークボタンを設置する場合は下記のように入力してください。

ツイートボタン

デフォルトのツイートボタン は HTML 5 方式なので 公式ページ を参考にちょっと改変しましょう。

設置したい場所に下記のように入力します。your_screen_name の部分にはご自分の twitter のアカウント名を代入してください。URL は自動で取得されますので入力する必要はありません。

グーグル プラスワンボタン

コードの入手

コードは 2 種類あります。ボタン表示用のコードと JavaScript 呼び出し用のコードです。

JavaScript 呼び出し用高速コード

公式サイト には言語のドロップリストが二つありますが、上を「English (US)」にして、下を「Japanese - 日本語」にしてください。更に「Asynchronous」をチェックすることで JavaScript 呼び出し用のコードが非同期用の高速なコードになります。ボタン表示用のコードは変わりません。私は JavaScript 呼び出し用のコードを Facebook のスクリプトと合わせて私は外部スクリプト化してます。

ボタン表示用コード

ボタン表示用のコードは HTML 5 の文法のコードとそうでないコードがあります。そうでない方がデフォルトです。HTML 5 ではない方のコードでボタンを設置すると Another HTML-lint gateway で減点されることはありませんが、W3C の XHTML 認定 には合格しません。HTML 5 の文法のコードだと減点される上に合格しません。これは根本的な問題なので twitter ボタンのように改変することもできません。こうなったらゴリ押しです。

ゴリ押し

ボタン表示用のコードを あらかじめエンコードしてから表示時に JavaScript でデコード して表示するようにします。ボタン表示用のコードはどちらを使っても構いませんが、今回は HTML 5 のコードを利用します。

上記のコードを Unescape Encoder/Decoder でエンコードして得られたコードが下記。

ちなみに、「そうでない方」だと下記の通り。

上記のコードを Unescape Encoder/Decoder でエンコードして得られたコードが下記。

これを JavaScript でデコードします。グーグルのプラスワンボタンを設置したい場所に下記のように入力します。

デコードスクリプトは外部スクリプト化するとさらにスマートです。

フェイスブック いいね! ボタン

Facebook の Like! ボタンです。これも Google の +1 ボタン同様エンコードとデコードが必要です。まずは、Facebookコネクト でコードを入手してください。エンコードデコードする方法だと URL を挿入することができませんので、URL 欄は必ず空欄にしてコードを入手してください。

先ほどと同様に加工し、Facebook のいいね! ボタンを設置したい場所に下記のように入力します。

デコードスクリプトは外部スクリプト化するとさらにスマートです。

各プラグインのスクリプトの読み込みについては私は tokkonoPapa さんの 最近海外で流行りのTwitter,Facebook,Google+1,Analyticsをまとめる非同期スクリプトにはてなを加えてみた のやり方を完全にマネしてます。


関連記事
関連記事はありません。

« 1 つ新しい記事「」へ
1 つ古い記事「」へ »

  • トラックバック

    URL:

  • コメント

    noderajyokenndou 2011 年 11 月 26 日
    ありがとうございました、やっと100点になりました♪ 今まで減点が嫌で付けられなかったんですよね、ほんとに助かりました。 しかし(マーク区間 は、多くのブラウザは理解できません。)なんて出ますよね、これは仕方ないのでしょうか? ひょっとしてこれが「デコードスクリプトは外部スクリプト化するとさらにスマートです」なのでしょうか、サッパリ意味がわからないので、すいませんが教えていただけると嬉しいです!!
    プロ 2011 年 11 月 27 日
    noderajyokenndou さん、 大丈夫、警告なしのサイトにできますよ! お察しの通り外部スクリプト化で解決できます。まず、メモ帳を開いてください。次に、デコードスクリプトの document から )); までの部分をコピーしてメモ帳に貼り付けます。それから、plus1_decode.js などと名前を付けてデスクトップにでも保存します。 それをサーバーのどこかにアップロードしてください。ここではアップロードした場所が http://kadrinche.la/plus1_decode.js だとします。 後は、 <script type="text/javascript">// <![CDATA[ document 中略 )); // ]]></script> の部分を <script type="text/javascript" src="http://kadrinche.la/plus1_decode.js"></script> と書き換えれば外部スクリプト化完了です!
    noderajyokenndou 2011 年 11 月 27 日
    早速のお返事ありがとうございます! 今作業を終わりまして、無事「大変良く出来ました」マークをとれました、減点なしです♪ めっちゃうれしいです、まだトップページしか変更できてませんのでこれから全ページ修正します、ホントにありがとうございました。
    プロ 2011 年 11 月 28 日
    こんなに喜んでいただけて私も嬉しいです。減点が一切無いだなんてすごいサイトですね! しかし、時代は HTML 5 なんでしょうか。勉強しなおさないといけませんね……。
    ピアノ教室 管理人 2012 年 3 月 28 日
    偶然ここにたどり着いたんですが、 いや本当~~~に、参考になりました! 長い間ソーシャルブックマーク系のエラーが気になっていたんですが、どうしようもなくて放置していたんです。 でもこれでスッキリ解決しました。 ああ、なんて晴れやかな気持ちなんでしょうか♪^^ ありがとうございました。 感謝・感謝です。
    プロ 2012 年 3 月 30 日
    こういう書き込みをしていただけると本当に嬉しいです。ブログをやっていた甲斐があります。 とても励みになりました! もっと良い記事が書けるよう精進します!
    webstyle 2012 年 4 月 6 日
    mixiのボタンを設置したのですが、クリックするとデータがありません。と表示されるのですが、なにか設定する必要はあるのでしょうか? ウェブサイト用です。よろしくお願いします。
    プロ 2012 年 4 月 8 日
    識別キーと URL は正しく入力しましたか?

    この記事のコメントフィード

  • コメント投稿

    ログイン する





    下記のタグが使えます (XHTML):
    <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <img alt="" class="" height="" src="" width=""> <q cite=""> <span class=""> <strike> <strong> <sub> <sup>