闇黒日記の最新更新箇所を見つける

最近の闇黒日記は1日分の文章量が多く、最新更新箇所を見つけるのが一苦労なので、そのためのbookmarkletを作ってみました。

javascript:(function(){var url=new RegExp(/^http:\/\/members\.jcom\.home\.ne\.jp\/w3c\/omake\/diary\.html/); if(location.href.match(url)){var dl=document.getElementsByTagName('DL').item(0); var dts=dl.getElementsByTagName('DT'); var dt=dts.item(dts.length-1); dt.style.backgroundColor='#fcc'; scrollTo(dt.offsetLeft, dt.offsetTop-20);}else{alert('not ankokunikki.');}})()

もともとは、「ページの最初にあるdl要素中の、最後のdt要素のところへ移動する」というだけのものだったのですが、後から思いついて、

という(あってもなくても良さそうな)機能をつけてみました。Mozilla 1.7a, IE 5.01 SP2, Opera 7.23での動作を確認。

追記(2009年1月23日)

昨年9月に文書の書き方が変わっていたのに今更ながら対応してみたり。

javascript:(function(){%0A%09if (!location.href.match(/^http:\/\/members\.jcom\.home\.ne\.jp\/w3c\/omake\/diary\.html/)){%0A%09%09alert('not ankokunikki.');%0A%09%09return;%0A%09}%0A%09var dl = getLatestDL();%0A%09if (dl) {%0A%09%09var dts = dl.getElementsByTagName('DT');%0A%09%09var len = dts.length;%0A%09%09var dt = dts[len - 1];%0A%09%09dt.style.backgroundColor = '#fcc';%0A%09%09scrollTo(0, dt.offsetTop - 20);%0A%09}%0A%0A%09function getLatestDL() {%0A%09%09var re = /\u5E74.+\u6708.+\u65E5$/;%0A%09%09var dts = document.getElementsByTagName('DT');%0A%09%09var len = dts.length;%0A%09%09for (var i = 0; i < len; i++) {%0A%09%09%09if (!dts[i].firstChild) continue;%0A%09%09%09if (dts[i].firstChild.nodeType != 3) continue;%0A%09%09%09if (dts[i].firstChild.data.match(re)) return dts[i].parentNode;%0A%09%09}%0A%09%09return null;%0A%09}%0A})();

長くなってしまったのでFirefox、Operaでないと動かないと思います。

(2004年2月7日)

北村曉 kits@akatsukinishisu.net