Top > AutoPagerize > Extension > HatenaStar

AutoPagerize/Extension/HatenaStar

Last-modified: 2009-02-23 (月) 16:53:18

Hatena Star with AutoPagerize for SeaHorse by 958 Edit

概要 Edit

  • Autopagerize for Seahorse で継ぎ足したページにもはてなスターを表示する

必須拡張 Edit

  • SeaHorse 1.1.1 以上
  • UserAction Extension 1.0.0 以上

動作確認環境 Edit

  • Windows XP SP2
  • Internet Explorer 7
  • Sleipnir 2.7.0
  • Seahorse 1.1.2
  • UserAction Extension 1.0.1

インストール Edit

  • ソースをコピーし、テキストエディタに貼り付け
  • sleipnir のインストールディレクトリ\plugins\seahorse\fHatenaStarWithAP.user.js に保存

説明 Edit

  • インストール完了後、はてなスターが設置されている AutoPagerize for SeaHorse 対応済みのサイトにアクセスし、ページ下方にスクロールして次のページを継ぎ足す
  • 継ぎ足したページにもはてなスターが表示される

制限事項 Edit

  • 他のはてなスター関連の SeaHorse スクリプトを使用していると、正常に動作しない場合がある

ソース Edit

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 
 
 
 
 
 
 
-
|
|
|
|
-
|
|
|
|
|
-
|
-
|
-
|
!
|
|
-
-
|
|
!
!
|
|
-
-
|
|
|
|
!
!
|
-
|
|
!
!
-
|
!
-
|
!
!
// ==UserScript==
// @name Hatena Star with AutoPagerize
// @description AutoPagerize で継ぎ足したページにもはてなスターを表示する
// @include http://*
// @version 0.01
// @author 958
// ==/UserScript==
window.attachEvent('onload', function(){
    if (!window.AutoPagerize || !window.Hatena)
        return;
 
    var $w = typeof unsafeWindow != "undefined" ? unsafeWindow : window;
    $w.Hatena.Star.EntryLoader.loadNewEntries= function(node) {
        var c = Hatena.Star.EntryLoader;
        if (!node) node = document.body;
        var entries_org = c.entries;
        c.entries = null;
        var entries;
        if (c.headerTagAndClassName) {
            entries = c.loadEntriesByHeader(node);
        } else if (c.loadEntries) {
            entries = c.loadEntries(node);
        } else {
            entries = c.loadEntriesByConfig(node);
        }
        c.entries = [];
        var urilist = [];
        if (entries_org && entries_org.length > 0) {
            for (var i = 0; i < entries_org.length; i++) {
                var entry = entries_org[i];
                urilist.push(entry.uri);
            }
        }
        if (urilist.length > 0)
            var re = new RegExp(urilist.join('|'));
        if (entries && typeof(entries.length) == 'number') {
            for (var i = 0; i < entries.length; i++) {
                if ((urilist.length > 0) && (entries[i].uri.match(re))) continue;
                var e = new Hatena.Star.Entry(entries[i]);
                e.showButtons();
                c.entries.push(e);
            }
        }
        c.getStarEntries();
        if (entries_org) {
            c.entries.push(entries_org);
            c.entries = Ten.Array.flatten(c.entries);
        }
    };
    function starInit(){
        $w.Hatena.Star.EntryLoader.loadNewEntries();
    }
    window.AutoPagerize.addElementFilter(function(docs) {
        setTimeout(starInit, 0);
    });
});