はじめてでもこわくない! 株式会社のつくりかた -2ページ目

アメブロにGoogle +1ボタンやfacebook「いいね!」ボタンなどをまとめて設置する方法

おとといTwitterが「フォロー」ボタンを提供開始し、昨日はGoogleが「+1(プラスワン)」をWebサイトに設置するためのコードを公開しました。パソコン


早速このブログにも入れてみたところ、Googleが公式サイトで「このコードを貼り付けてください」としている+1のコードでは、Firefoxでは動くのですがIE8ではうまく動きませんでしたあせっ(アメブロとの相性かな?)


スクリプトでDOMを使用した構文をHTMLに替え、<div>のclassにg-plusoneを設定したらIE8でもうまく動いたのですが、これはHTMLに詳しくないかたには敷居が高いんじゃないのかなぁ?・・・と思いましたので、簡単な設置方法をご紹介します♪


以前、このブログで「アメブロにfacebookの「いいね!」ボタンやソーシャルブックマークボタンを設置する方法」という記事を書きましたが、基本的にはこれをちょこちょこっといじっただけです。にひひ


まず、今回ブログに付けるボタンは
   Twitterの『フォロー』ボタン
   『Google +1』ボタン
   『はてなブックマークに追加する』ボタン
   『Yahoo!ブックマークに追加する』ボタン
   『Googleブックマークに追加する』ボタン
   『Livedoor Clipに追加する』ボタン
   『Evernoteにクリップする』ボタン
そして、facebookの「いいね!」ボタンです。

(今回は「いいね!」の横に「送信」ボタンも付けます。)


そして、これらを付ける場所は、『なうで紹介』ボタンの直前です。


下記のソースを記述したJavaScriptファイルを外部に置いて、それを読み込むようにします。
(ソースが長いので、Amebaのフリープラグインの中には書ききれません。文字数制限に引っかかってしまいます。)


$(document).ready(function(){
var entries = $(".foot a:contains('記事URL')");
var cName = "div.entry #exLinkBtn";
for (var i = 0; i < entries.length; i++) {
var url = entries[i];
var title = $("div.entry h3.title").eq(i).text();
var blog = 'ブログ名';

title += ' | ' + blog;

var google = '<div class="g-plusone" data-size="medium" data-count="true" data-href="' + url + '"></div>';

var hatena = '<a href="http://b.hatena.ne.jp/entry/' + url + '" class="hatena-bookmark-button" data-hatena-bookmark-title="' + title + '" data-hatena-bookmark-layout="standard" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" /></a>';

var htmlData = google + hatena;

var nObj = new Array();
nObj[0]={
href:'http://bookmarks.yahoo.co.jp/bookmarklet/showpopup?t=' + title + '&u=' + url + '&opener=bm&ei=UTF-8',
alt:'このエントリーをYahoo!ブックマークに追加',
src:"Yahoo!ブックマーク画像のパス"
};

nObj[1]={
href:'http://www.google.com/bookmarks/mark?op=add&amp;bkmk=' + url + '&amp;title=' + title,
alt:'このエントリーをGoogleブックマークに追加',
src:"Googleブックマーク画像のパス"
};

nObj[2]={
href:'http://clip.livedoor.com/clip/add?link=' + url + '&title=' + title + '&jump=ref',
alt:'このエントリーをLivedoor Clipに追加',
src:"Livedoor Clip画像のパス"
};

for (var n=0; n < nObj.length; n++){
htmlData += '<a href="' + nObj[n].href + '" target="_blank"><img src="' + nObj[n].src + '" alt="' + nObj[n].alt + '" title="' + nObj[n].alt + '" /></a>';
}

var evernote = '<a href="#" onclick="Evernote.doClip({contentId:\'sub_main\',providerName:\'' + url + '\'}); return false;"><img src="http://static.evernote.com/article-clipper-jp.png" alt="Clip to Evernote" title="evernoteにクリップする" /></a>';

var follow = '<a href="http://twitter.com/Twitterアカウント" class="twitter-follow-button" data-show-count="false" data-lang="ja">フォロー @Twitterアカウント</a>';

var facebook = '<div id="fb-root"></div><fb:like href="' + url + '" send="true" width="400" show_faces="false" font=""></fb:like>';

htmlData += evernote + follow + facebook;

$(cName).eq(i).before(htmlData);
}
})


赤文字の部分は、ご自分の情報に置き換えてください。

ボタンの画像は、あらかじめアップロードしておく必要があります。


上記ソースのJavaScriptファイルを、例えば『insertSBM.js』という名前をつけて保存したら、お使いのレンタルサーバなどに設置します。パソコン


そしてAmebaの「サイドバーの設定」→「プラグインの追加」→「フリープラグイン」の中に


<script type="text/javascript" src="http://apis.google.com/js/plusone.js">{lang: 'ja'}</script>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
<script type="text/javascript" src="http://static.evernote.com/noteit.js"></script>
<script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>
<script language="javascript" src="http://xxxxx.com(設置したURL)/insertSBM.js" charset="utf-8"></script>


と記述すれば、今回必要なJavaScriptファイルをすべて読み込むことができます。メモ

(フリープラグインは、必ずバックアップをとってから記述してくださいね。何か不具合が起きたら、すぐに元に戻せるようにしておきましょう。)


ちなみに、Google +1ボタンはIE8未満は対象としていないため、IE7やIE6では表示されません。(今のところ、iPadやiPhoneでも表示されません。)


英語版のGoogle.com以外は検索結果にもまだ出てこないようですが、これからが期待大ドキドキの楽しみな機能ですね。


よかったら、下のGoogle +1ボタンをポチッとしてみてください!ニコニコ


2011/6/29追記:

昨日から、この方法で設置したGoogle +1がIE8で表示されなくなってしまいました。

Google +1のソースを直書きした場合は表示されるのですが、JaveScriptを使ってソースを表示させようとするとIE8ではなぜか表示されないのです・・・しょぼん

おそらくGoogleの仕様変更によるものと思われますが、現在 原因を調査中です。 ←アメブロの仕様変更が原因のようです。

2011/7/7追記:

アメブロの仕様変更により、IE8でも強制的にIE7モードで描画するmetaタグが出力されちゃっているので、これが原因っぽいですね。

以前はこんなmetaタグなかったのに・・・う~ん、困ったなぁ・・・。

ちょっと対策を考えますので、もうしばらくお待ちくださいビックリマーク