「continue_reading.user.js」更新 その4

Greasemonkey: continue_reading.user.js - mayokara note

  • pageElement絡みの修正
    • pageElementがrowsプロパティをもっている(つまりtable/tbody要素)のときは各行をpageElementとするようにした
      • 要はtable自体ではなくその中身だけを継ぎ足す
      • Wassr検索がちゃんと動くようになった
    • microformatsを使うときは、見つかった最後のノードと同じ要素だけを選択するようにした
      • 要はdiv.hentryとtr.hentryが混在するとき、最後の要素(tr)だけが選択されるようになる
        • 「最後の要素」ってのが若干手抜きだけど、そもそも違う要素につけること自体が……って感じなので、これでfix
      • Twitterがちゃんと動くようになった

onscroll手動発火の件は、自分でウィンドウサイズを縮めれば何とでもできることに気づいたので保留。

State#notifyはあってもそんなにうれしくないので見送り。

Re: continue_readingとSITEINFOの連携

continue_readingとSITEINFOの連携 - 素人がプログラミングを勉強するブログ

continue_reading用というより、SITEINFOに従ってDOMツリーにAutoPagerize独自のmicroformatsを加えるスクリプト。

正直SITEINFOのことはあまり考えて作ってないので、今回の2番目の修正でpageElementがid("content")/*のようになっているとき、うまく動作しなくなってしまったかもしれません。

必要があればconst定数を使ってstrictモードとして実装し直すこともできますが、コンセプトとして外部との依存をなくす方向で作っているので、私的にはあまり……といった感じです。


なので、とりあえず現段階でのパッチを置いておくことにします。

これを当てれば、今回の2つ目の修正をなかったことにできます。

--- continue_reading.user.js	Mon Jul 14 12:46:00 2008
+++ continue_reading.user.js	Mon Jul 14 12:46:00 2008
@@ -195,7 +195,7 @@
         if (node) {
             pageElement = {
                 node: node,
-                xpath: '/descendant::x:' + node.nodeName.toLowerCase() + '[contains(concat(" ",@class," ")," ' + v + ' ")]',
+                xpath: '/descendant::x:*[contains(concat(" ",@class," ")," ' + v + ' ")]',
             };
             return true;
         }

Comment: 0

Comment Form
Name
URL
Comment

Trackback: 1

Trackback URL
http://mayokara.info/note/trackback/282
Attention
スパム対策のため、当エントリへのリンクがないトラックバックをブロックしています。
「continue_reading.user.js」更新 その5
mayokara note 2008/07/14 18:11
Greasemonkey: continue_reading.user.js - mayokara note-MICROFORMATS_USE_STRICTオプションの追加--私が間違ってました--microformatsに全部同じ要素でなければいけないなんてルールはないし、自分ルールを強要した挙句互換性取るためにはパッチ当てろってのはあん...