Hatena Star with AutoPagerize for SeaHorse by 958
概要
- Autopagerize for Seahorse で継ぎ足したページにもはてなスターを表示する
必須拡張
- SeaHorse 1.1.1 以上
- UserAction Extension 1.0.0 以上
動作確認環境
- Windows XP SP2
- Internet Explorer 7
- Sleipnir 2.7.0
- Seahorse 1.1.2
- UserAction Extension 1.0.1
インストール
- ソースをコピーし、テキストエディタに貼り付け
- sleipnir のインストールディレクトリ\plugins\seahorse\fHatenaStarWithAP.user.js に保存
説明
- インストール完了後、はてなスターが設置されている AutoPagerize for SeaHorse 対応済みのサイトにアクセスし、ページ下方にスクロールして次のページを継ぎ足す
- 継ぎ足したページにもはてなスターが表示される
制限事項
- 他のはてなスター関連の SeaHorse スクリプトを使用していると、正常に動作しない場合がある
ソース
// ==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);
});
});