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だとポインタをその上に持っていくと画像をリロードしに行くんだけれど、どうやったら直せるんだろう?
トラックバックURL: http://adp.daa.jp/cgi/mt2/mt-tb.cgi/709