Alternative Design Project

ADP: はてブのブックマーク数を表示

2007年12月29日 15:26 | コメント(0) | トラックバック(0)

ADP: Momomoについてをまた変更で書いたのは、そのエントリの内容や著者がどれだけ信頼できるか心配な利用者のために、できる範囲で情報を与える、というものだった。なぜ「できる範囲で」なのかといえば、「私は信頼できますよー」と自分でいくら言っても自ずと限度があるからだ。

信頼性を自分でアピールするためのシグナルって他に何があるかな、と考えたところ、ソーシャルブックマークをしてもらった数がひとつの指標になりうるかな、と思った。

このためだけにHTMLを書き換えるのもイヤなので、自分のブログに被ブックマーク数を表示する(はてなブックマーク)に従ってブックマーク数を表示するスクリプトをmt.jsに追加した。画像を埋め込む場所はADPの場合、必ず個別エントリのp要素の2番目になるので、document.getElementsByTagName('p')[1]と決め打ちし(むちゃくちゃでごめんなさい)、urlは、#commentsとか#trackbacksとかが後ろにつかないように'http://'+location.hostname+location.pathnameとした。

function makeBookmarks() {
    var meta = document.getElementsByTagName('p')[1]; //p要素の2番目
    if (!meta) return;

    var text = new Array(1);
    var a = new Array(1);
    var img = new Array(1);
    var url = 'http://' + location.hostname + location.pathname;

    text[0] = document.createTextNode(' | ');

    a[0] = document.createElement('a');
    a[0].setAttribute('href','http://b.hatena.ne.jp/entry/' + url);
    img[0] = document.createElement('img');
    img[0].setAttribute('src','http://d.hatena.ne.jp/images/b_entry.gif');
    img[0].setAttribute('alt','はてなブックマーク');
    img[0].setAttribute('title','はてなブックマーク');

    text[1] = document.createTextNode(' ');

    a[1] = document.createElement('a');
    a[1].setAttribute('href','http://b.hatena.ne.jp/entry/' + url);
    img[1] = document.createElement('img');
    img[1].setAttribute('src','http://b.hatena.ne.jp/entry/image/' + url);
    img[1].setAttribute('alt','');

    meta.appendChild(text[0]);
    meta.appendChild(a[0]).appendChild(img[0]);
    meta.appendChild(text[1]);
    meta.appendChild(a[1]).appendChild(img[1]);
}

その上で、onload時に他のといっしょにmakeBookmarks()を呼べばOK。

ところで、うちのOperaだとポインタをその上に持っていくと画像をリロードしに行くんだけれど、どうやったら直せるんだろう?

トラックバック(0)

トラックバックURL: http://adp.daa.jp/cgi/mt2/mt-tb.cgi/709

コメント(0)

コメントの内容確認のため、反映されるまで時間がかかる場合があります。e-mailはサイトに掲載されません。

このページの先頭へ