はてなブックマークボタンを表示する

hatena1.png

基本的なコード

はてなブックマークボタンは、「使いやすくなりました! はてなブックマークボタン」でコードを取得できます。

基本的なコード(スタンダードボタン)は、以下のようになります。

<a href="http://b.hatena.ne.jp/entry/" class="hatena-bookmark-button" data-hatena-bookmark-layout="standard" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>

URLを「http://dobon.net/」、タイトルを「DOBON.NET」タイプをバーティカル(大きめのサイズ)にした時のコードは、以下のようになります。なおURLに「#」が含まれる場合は、エンコードして「%23」にする必要があるようです。

<a href="http://b.hatena.ne.jp/entry/http://dobon.net/" class="hatena-bookmark-button" data-hatena-bookmark-title="DOBON.NET" data-hatena-bookmark-layout="vertical" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>

はてなブックマークボタンは、JavaScriptを無効にしているとボタンのみが表示され、ブックマーク数は表示されません。下で紹介している旧ボタンならば、JavaScriptが無効の時でも表示できます。

行動情報を取得しないはてなブックマークボタン

上記のはてなブックマークボタンは、マイクロアドがユーザーに合った広告を表示するためにユーザーの行動情報を取得しているそうです。詳しくは、「はてなブックマークボタンを表示する」にあります。

ユーザーの行動情報を取得しないボタンのコードは、「はてなブックマークボタンの作成・設置について」で取得できます。

行動情報を取得しないボタンの基本的なコードは、以下のようなものです。

<a href="http://b.hatena.ne.jp/entry/" class="hatena-bookmark-button" data-hatena-bookmark-layout="standard" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button_wo_al.js" charset="utf-8" async="async"></script>

普通のコードとの違いは、JavaScriptのsrcが「http://b.st-hatena.com/js/bookmark_button.js」ではなく、「http://b.st-hatena.com/js/bookmark_button_wo_al.js」になっていることです。それ以外の違いはないようです。

それにしても、この行動情報の取得は2011年9月1日から始まったようですが、突然このようなことを行うというのは問題があるような気がします。はてなへのユーザーの信頼が低下してしまうのではないかと心配です。なお情報を取得されたくないユーザーは、「http://send.microad.jp/w3c/」で無効化にすることもできるようです。

旧はてなブックマークボタンを表示する

hatena2.png

旧はてなブックマークボタン(「このエントリーをはてなブックマークに追加」アイコンと「このエントリーを含むはてなブックマーク」アイコン)の設置方法は、「自分のブログに「↑B」「B!」アイコンを表示する」で説明されています。

また、被ブックマーク数を表示する方法は、「被ブックマーク数を表示する」で説明されています。

これらの方法ならば、JavaScriptを使用しなくても表示できます。

例えば「http://dobon.net/」のブックマークボタンと被ブックマーク数を表示するには、次のようなコードを書きます。

<a href="http://b.hatena.ne.jp/entry/add/http://dobon.net/"><img src="http://b.hatena.ne.jp/images/append.gif" width="16" height="12" style="border: none;" alt="このエントリーをはてなブックマークに追加" title="このエントリーをはてなブックマークに追加" /></a>
<a href="http://b.hatena.ne.jp/entry/http://dobon.net/"><img src="http://b.hatena.ne.jp/entry/image/http://dobon.net/" style="border: none;" alt="はてなブックマーク - DOBON.NET" title="はてなブックマーク - DOBON.NET" /></a>

なお被ブックマーク数の画像には3種類の大きさがあります。上記のようなURLが「http://b.hatena.ne.jp/entry/image/エントリーのURL」の画像は高さが13pxですが、高さが15pxの大きい画像のURLは「http://b.hatena.ne.jp/entry/image/large/エントリーのURL」で、高さが11pxの小さい画像のURLは「「http://b.hatena.ne.jp/entry/image/small/エントリーのURL」です。

旧ブックマークボタンをJavaScriptで表示する

旧ブックマークボタンではページのURLを埋め込まなければなりませんが、それができない時のために、JavaScriptで現在のページのブックマークボタンを表示する例を示します。

<div id="hatena_button"></div>

<script type="text/javascript">
(function(){
var currentUrl = location.href.replace(/#/, '%23');

var appImg = document.createElement("img");
appImg.setAttribute("src","http://b.hatena.ne.jp/images/append.gif");
appImg.setAttribute("width","16");
appImg.setAttribute("height","12");
appImg.setAttribute("style","border: none;");
appImg.setAttribute("alt","このエントリーをはてなブックマークに追加");
appImg.setAttribute("title","このエントリーをはてなブックマークに追加");

var appA = document.createElement("a");
appA.setAttribute("href","http://b.hatena.ne.jp/entry/add/" + currentUrl);
appA.setAttribute("target","_blank");
appA.appendChild(appImg);

var cntImg = document.createElement("img");
cntImg.setAttribute("src","http://b.hatena.ne.jp/entry/image/" + currentUrl);
cntImg.setAttribute("style","border: none;");
cntImg.setAttribute("alt","はてなブックマーク");
cntImg.setAttribute("title","はてなブックマーク");

var cntA = document.createElement("a");
cntA.setAttribute("href","http://b.hatena.ne.jp/entry/" + currentUrl);
cntA.setAttribute("target","_blank");
cntA.appendChild(cntImg);

var div = document.getElementById("hatena_button");
div.appendChild(appA);
div.appendChild(cntA);
})();
</script>

はてなブックマークカウンター

hatena3.png

はてなブックマークカウンターは、サイト全体の被ブックマーク数をカウンタ表示します。設置方法は、「はてなブックマークカウンター」に説明があります。

例えば、「http://dobon.net/」のサイト全体の被ブックマーク数を表示するには次のようなコードを書きます。

<a href="http://b.hatena.ne.jp/entrylist?url=http://dobon.net/"><img src="http://b.hatena.ne.jp/bc/http://dobon.net/" style="border: none;" alt="DOBON.NETのはてなブックマーク数" title="DOBON.NETのはてなブックマーク数"></a>

(X)HTML validにする

旧ブックマークボタンを使用するのが1つの方法です。

新ブックマークボタンの場合は、「新しいはてなブックマークボタンを(X)HTML validにする方法: 小粋空間」によると、HTML5以外ではvalidではないそうです。解決法は、「data-hatena-bookmark-」属性と「async="async"」属性を削除するということです。

新はてなブックマークボタンをFC2ブログに設置する : web memo.Ver.2」によると、「async="async"」の代わりに「defer="defer"」が使えるそうです。

この方法ではオプションの指定ができませんので、スタイルの指定や、タイトルの指定ができません。

この方法によるコードの例は、以下のようなものです。ここではブックマークするURLを「http://dobon.net/」としていますが、現在のURLでよければ省略してください。

<a href="http://b.hatena.ne.jp/entry/http://dobon.net/" class="hatena-bookmark-button" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button_wo_al.js" charset="utf-8" defer="defer"></script>

「data-hatena-bookmark-」属性をJavaScriptで付ける例は、以下のようなものです。

<a id="hatena_button" href="http://b.hatena.ne.jp/entry/http://dobon.net/" class="hatena-bookmark-button" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button_wo_al.js" charset="utf-8" defer="defer"></script>

<script type="text/javascript">
(function(){
var hb = document.getElementById("hatena_button");
hb.setAttribute("data-hatena-bookmark-title","DOBON.NET");
hb.setAttribute("data-hatena-bookmark-layout","vertical");
})();
</script>

コメント



ページ情報
[ トップ ]   [ 新規 | 子ページ作成 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]