このページの本文へ

はてブの評判が丸分かり! APIを使ってみよう (2/2)

2009年02月12日 08時00分更新

文●藤本 壱

  • この記事をはてなブックマークに追加
本文印刷

はてなブックマークの情報を表示するJavaScript

 ここまでで述べた手順を元に、APIを使ってはてなブックマークの情報を表示するJavaScriptを作ってみました。

 まず、情報を表示する先のWebページに、以下のようなHTMLタグを追加します。「情報を読み込んでいます。」のメッセージは、適宜変えていただいて構いません。この <div id="hatena_bookmark">~</div>の中が、はてなブックマークの情報が表示される場所になります。


<div id="hatena_bookmark">情報を読み込んでいます。</div>


 次に、上のdivタグよりも後に、以下のJavaScriptを追加します。このJavaScriptは、WebページのURLを自動的に判断して、そのWebページのはてなブックマークの情報を読み込み、一覧表示するものです。

■はてなブックマークの情報を表示するJavaScript


<script type="text/javascript">
var FJShowHatenaBookmarkInfo = {};
FJShowHatenaBookmarkInfo.setup = function() {
    var script = document.createElement('script');
    script.type = "text/javascript";
    script.src = 'http://b.hatena.ne.jp/entry/json/?url=' + encodeURIComponent(location.href) + '&callback=FJShowHatenaBookmarkInfo.show';
    document.getElementsByTagName('head')[0].appendChild(script);
};
FJShowHatenaBookmarkInfo.show = function(data) {
    var elm = document.getElementById('hatena_bookmark');
    if (!data) {
        elm.innerHTML = '<p>まだ情報がありません。</p>';
        return;
    }
    var html = '<p>ブックマーク数 : <a href="' + data.entry_url + '">' + data.count + '</a></p>';
    if (data.count > 0) {
        html += '<ul>';
        for (var i = 0, j = data.bookmarks.length; i < j; i++) {
            var bookmark = data.bookmarks[i];
            html += '<li>';
            html += '<span class="bookmark-user">' +  bookmark.user + '</span>';
            html += ' <span class="bookmark-date">' +  bookmark.timestamp + '</span>';
            if (bookmark.comment) {
                html += '<br /><span class="bookmark-comment-title">コメント : </span>';
                html += '<span class="bookmark-comment-text">' +  bookmark.comment + '</span>';
            }
            if (bookmark.tags.length) {
                html += '<br /><span class="bookmark-tag-title">タグ : </span>';
                html += '<span class="bookmark-tag-title">' + bookmark.tags.join(', ') + '</span>';
            }
            html += '</li>';
        }
        html += '</ul>';
    }
    if (data.related.length) {
        html += '<p>関連するWebページ</p>';
        html += '<ul>';
        for (i = 0, j = data.related.length; i < j; i++) {
            var related = data.related[i];
            html += '<li>';
            html += '<a href="' + related.url + '">' + related.title + '</a>';
            html += '</li>';
        }
        html += '</ul>';
    }
    elm.innerHTML = html;
};
FJShowHatenaBookmarkInfo.setup();
</script>


 ブログなど、個々のページにはてなブックマークの情報を表示したいときは、JavaScriptを外部化しておくと便利です。その場合は、ソースコードの1行目 <script type="text/javascript"> と、最後の行の </script> を除いたものjsファイルとして保存し、個々のページに以下のscriptタグを入れましょう。


<script type="text/javascript" src="JavaScriptのアドレス"></script>


 また、ブックマークの情報は「FJShowHatenaBookmarkInfo.show」関数で表示しています。この関数の中身を書き換えれば、APIで取得した情報の表示方法を変えることもできます。ぜひ試してみましょう。


前へ 1 2 次へ

Web Professionalトップへ

この記事の編集者は以下の記事をオススメしています