はてなブックマークで LDRize をちゃんと動かすGreasemonkey Script
ホントに「ちゃんと」なのか怪しいけど。Firefox3とOpera9.6で動くのは確認。
http://userscripts.org/scripts/show/37569
ページが継ぎ足されるたびに全エントリの位置を再計算しているので、ページが大きくなると重くなります。。
折角なのでコメントつけてみたり。
// ==UserScript== // @name b.hatena ldrizer // @namespace http://ss-o.net/ // @include http://b.hatena.ne.jp/* // ==/UserScript== // LDRizeより後に実行する必要があるのでsetTimeoutする(ユーザースクリプトの管理で並べ替える必要がなくなる) setTimeout(function(unsafeWindow) { // 実行して問題ないかベタに調査。。しなくても大丈夫なんだけど、一応。 if ( unsafeWindow.Hatena && unsafeWindow.Hatena.Bookmark && unsafeWindow.Hatena.Bookmark.AutoPagerize && unsafeWindow.Hatena.Bookmark.AutoPagerize.instance && window.LDRize && window.Minibuffer ) { // Hatena.Bookmark.AutoPagerize.instanceにnewしたObjectが入っているので、それでAddEventListenerする var autopager = unsafeWindow.Hatena.Bookmark.AutoPagerize.instance; // oldAddEventListenerはaddEventListenerのショートカットみたいなの autopager.oldAddEventListener('complete',function(){ // サイト側のイベントからGreasemonkey側の関数を呼ぶ場合はsetTimeoutを挟む setTimeout(function(){ // LDRize::paragraph-re-collectで追加された分を含めて位置を再計算する window.Minibuffer.execute('LDRize::paragraph-re-collect'); },10); }); // サイト側のショートカットキーがLDRizeと地味に競合するので、サイト側は止めておく unsafeWindow.Hatena.Bookmark.Navigator.instance.keyboard.keydownObserver.stop(); } },10, this.unsafeWindow || this); // OperaなどunsafeWindowがない場合でも動くように。 unsafeWindowがなければthis(windowオブジェクト)が使用される