2011.09.15 自作のはてブボタン|公式はてブと同様の機能を追加する方法 先日、はてブボタン・ツイートボタンを自作したのですが、公式のはてブボタンとは動作が異なり、はてブパネル(はてブボタンをクリックすると出てくるアレ)が表示されません。 色々調べてみたところ、はてブパネルを表示することができたので、その方法を書いておきます。 この記事は先日公開した「ツイートボタン・はてブボタン | APIを利用して自作してみました。」の続きです。 サンプル ソース HTML </p> <div id="hatebu"></div> <script src="http://www.google.com/jsapi"></script> <script>google.load('jquery', '1.6.2');</script> <script src="js/hatebu-link.js"></script> <script> $(function(){ var url = document.location.protocol + '//' + document.location.host + document.location.pathname; var text = document.title; //hatebulink('挿入ID', '自作ボタンのclass', 'はてブさせたいURL'); hatebulink('hatebu', 'hatebu-small', url); }); </script> <script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script> <p> JavaScript (hatebu-link.js) var hatebulink = function(_id, _class, _url){ _url = encodeURI(_url);</p> <div class="highlighter-rouge"> <pre class="highlight"><code>$.getJSON('http://api.b.st-hatena.com/entry.count?url=' + _url + "&callback=?", function(data) { $('<a>',{ 'href': 'http://b.hatena.ne.jp/entry/' + _url ,'title': 'はてブする' ,'target': '_blank' ,'class': 'hatena-bookmark-button ' + _class ,'data-hatena-bookmark-layout': 'simple' }) .append( $('<span>') .html(data) ) .appendTo($('#' + _id)); }); }; 解説 前回作成したものに修正を加えました。 HTML側の修正内容 公式で提供されているJavaScript「bookmark_button.js」を読み込ませます。 JavaScript側の修正内容 はてブの処理をさせたい要素のclassに「hatena-bookmark-button」を追加します。 HTML側で追加したJavaScript「bookmark_button.js」が「**はてブに該当する要素**」を公式のはてブボタンに置き換えるようになります。 置き換えられては困るので、要素に「data-hatena-bookmark-layout」という属性を追加し、値を「simple」にします。 これで要素は置き換えず、直接イベントを設定してくれるようになります。 今回これが分かるまでに色々と時間がかかってしまいました。 主にFirebugのバージョンが古かったというのが原因なのですが…、それはまたの機会に。 ではでは。