AutoPagerize for SeaHorse
概要
ページ分割されたWebサイトを自動的に下に継ぎ足して表示するSeaHorseスクリプト
流用元
ライセンス
流用元に準拠
必須拡張
SeaHorse 1.1.2 以上
UserAction Extension 1.0.0 以上
動作確認環境
Windows XP SP2
Internet Explorer 8
Sleipnir 2.8.5
UserAction Extension 1.0.0
SeaHorse 1.1.2
インストール
圧縮ファイルを解凍後、圧縮ファイル内の plugins ディレクトリ を sleipnir のインストールディレクトリにコピー
SeaHorse再読み込み
上記説明でわからない人は下記を参照 大変丁寧に解説いただきました 多謝
AutoPagerise移植版をSleipnirのSeahorseスクリプトで使う|Sleipnirを初心者がいじりまくるブログ
説明
本家同様、画面を次々と読み込んでくっつける
AutoPagerize が有効なサイトへ飛ぶと画面右上に小さい■が表示される
緑:有効
灰:無効
水:読み込み中
青:終了
赤:エラー
SITEINFO は 設定を変更しない限り、自動更新される
SITEINFO キャッシュを即時に更新したいは、添付されている UserAction スクリプト AutoPagerizeClearCache を実行するとキャッシュがクリアされ、次回 web アクセス時に更新される
右上のアイコンにマウスオーバーして、「Clear Cache」をクリックでも同様の動作
設定変更したい場合は、右上のアイコンにマウスオーバーして、「Setting」をクリックすると表示される設定画面で変更
「about:autopagerize」に直接アクセスでもよい
SITEINFO を作成したい人は、seahorse\AutoPagerize\siteinfo.js に SITEINFO を記載して実験
ver 0.55以降、siteinfo.jsが同梱されていないため、siteinfo.jsのベースファイルを本ページからダウンロード
添付されている UserAction スクリプト AutoPagerizeStateToggle を実行すると、アクティブなウィンドウの AutoPagerize の有効・無効が切り替えられる
siteinfoについては「http://wikiwiki.jp/958/?AutoPagerize」を参照
制限事項
次ページが別ドメインの場合は動作しない
グリモン版と比べて以下の点でいろいろとダウングレード
Xpath が使えないので、SITEINFO を独自に作成しないといけない
たぶん動作遅い
GoogleAutoPager と同時に使用する場合は @excludeにGoogleを指定する
拡張スクリプト
設定
about:autopagerizeへアクセス
それ以外の項目を変更したい場合は、seahorse\AutoPagerize\setting.js を変更
詳細はスクリプトファイルを参照
フィルタ関数について
window.AutoPagerize について
window.AutoPagerize.addFilter(f)
ドキュメント取得時にコールバックされるフィルタ関数を追加する
コールバック時のパラメータ
doc:AutoPagerize が読み込んだ次ページの document オブジェクト。本オブジェクトは、現在表示中の document オブジェクトとは異なるため、イベントの設定などは出来ない
url:リクエスト先URL
info:現在使用しているsiteinfo
window.AutoPagerize.addDocumentFilter(f)
上記 window.AutoPagerize.addFilter(f) と同じもの(本家と同じ関数名を使ったほうがいいかな~と思って追加した)
window.AutoPagerize.addElementFilter(f)
ドキュメント追加後にコールバックされるフィルタ関数を追加する
コールバック時のパラメータ
nodes:AutoPagerize が継ぎ足したエレメントの配列
window.AutoPagerize.addRequestFilter(f)
次ページのリクエスト前にコールバックされるフィルタ関数を追加する
コールバック時のパラメータ
opt:xhrのパラメータ(GM_xmlhttpRequest互換)
window.AutoPagerize.addResponseFilter(f)
次ページのレスポンス受信後にコールバックされるフィルタ関数を追加する
コールバック時のパラメータ
text:受信したHTMLページの生文字列
url :リクエスト先URL
res :受信時のxhrオブジェクト
window.AutoPagerize.stateToggle()
APの有効/無効状態をトグルする
window.AutoPagerize.jQuery
jQueryオブジェクト
window.AutoPagerize.SeaHorse
常に true
クロスブラウザ対応の UserScript を作成する場合に、グリモン版の AutoPagerize と区別するために使用
履歴
ver 0.56 09/10/14
セキュリティ上問題があるため、クロスドメイン通信を実行しないように
requestFilter, responseFilter追加
documentFilterのパラメータに、urlとinfo追加
Live Search Highlighterの同梱をやめた
ver 0.55 09/05/27
設定を SQLite に保存するように修正
次ページの取得時にエラーが発生した場合があったものを修正
siteinfo.js の同梱をやめた(ただし、siteinfo.jsが存在する場合は、そのSITEINFOは有効になります)
右上のアイコン上をマウスオーバー時に表示されるガイダンス上で、キャッシュクリアと設定画面表示が行えるように
ver 0.54 09/05/22
IE7環境で、SITEINFOにiframeBugFixを指定した場合に正常に動作しない不具合を修正
ver 0.53 09/05/20
IE8環境にて、iframeが入れ子になっているページを継ぎ足した際に、IEが起動するものを修正できていなかったため、暫定対策として、SITEINFOにiframeBugFixを追加した
ver 0.52 09/05/13
不要なリクエストヘッダを設定しているために、正常に動作しないサイトがあったものを修正
IE8インストール環境にて、iframeが入れ子になっているページを継ぎ足した際に、IEが起動するものを修正
ver 0.51 09/05/08
日本語ドメインが正しく扱えていない問題を修正
ver 0.50 09/04/14
正常に動作しないセレクタがあったため、jQuery 1.2.3 に戻したorz
ver 0.49 09/04/14
jQuery 1.3.2に差し替え
FORCE_TARGET_WINDOW の初期値を false に
BASE_REMAIN_HEIGHT の初期値を調整
SITEINFO の eraseString を noDesignMode 指定時以外でも動作するように
ver 0.48 09/03/02
JsDeferred有効時のページ継ぎ足し処理調整
FORCE_RELATIVE_URL_FIX有効時のリンク書き換え処理をimgタグのみに
ver 0.47 09/02/24
ページ追加時の処理タイミング調整
FORCE_TARGET_WINDOW が true のときに target 属性が変更されないことがある不具合を修正
ver 0.46 09/02/23
若干高速化
JSDeferredを使って処理をスレッド化
ファイルが追加されています
setting.js が変更されています
filterの実行タイミングが若干変わりましたので、拡張スクリプトが誤動作するかもしれません
把握してる範囲では、対応スクリプトのうち「LDRize for SeaHorse」「AutoPagerize/Extension/HatenaStar - 958 Wiki*」「AutoPagerize/Extension/ScrollToAutoPagerizePageforMouse - 958 Wiki*」は更新が必要です
設定の初期値を変更(BASE_REMAIN_HEIGHT、DELAY_ICON_FIX)
ver 0.45 08/12/22
ページ区切り線とページ番号にclass名を付加するように修正
ver 0.44 08/10/31
ロード後の次ページ取得処理をすぐに行わないように修正
ver 0.43 08/07/24
初期化処理を見直し、SITEINFO が無いサイトで若干高速化
同梱の GoogleHighlhighter が動作しなくなっていたので修正
ver 0.42 08/06/12
SITEINFO_URLS に記載されている URL の末尾が数字だった場合に、その数字をインクリメントして SITEINFO を取得しにいくように修正
AutoPagerize の終了時に、右上アイコンのエレメントは消去せずに、非表示にするように修正(メモリリークの可能性対策)
SITEINFO のキャッシュを DB に保存するように修正(設定を変更することで、従来のようにテキストファイルに保存することも可能)
setting.js、scripts\AutopagerizeClearCache.js が変更されています
ver 0.41 08/05/21
ページ継ぎ足し時に、正常に継ぎ足し出来ない場合が有るものを修正した
何らかの要因でページ継ぎ足しに失敗した場合はエラー表示するように修正
インクリメンタルモードの baseURL が nextlink だった場合に、最初に取得した次ページの URL を基準 URL とするようにした
継ぎ足したページ内の画像が相対パスで指定されている場合に、正しい画像を表示できていなかったものを修正
setting.js が変更されています
ver 0.40 08/05/13
SITEINFOの更新先URLを変更(複数ページに対応)
setting.js が変更されています
ver 0.39 08/05/13
SITEINFOの書式に不備があり、SITEINFOのアップデートに失敗した際に、全てのSITEINFOが更新されていなかったものを不備のあるSITEINFOのみ更新しないように修正
次頁のURLに#が含まれている際に、ページの取得が正常に行えなかった不具合を修正
ver 0.38 08/05/07
FORCE_TARGET_WINDOW が true のとき、javascript スキームのリンクに対しても target 属性を変更していたものを修正
addElementFilter で追加した function のパラメータに同一エレメントが複数回渡される不具合を修正
ver 0.37 08/04/30
セキュリティ対策
インクリメンタルモード追加
ver 0.36 08/04/07
別ドメインのフレームを含むページを表示した際にエラーが表示されていた不具合を修正
自動更新時にフォーカスを奪ってしまう不具合を修正
ページ継ぎ足し時に、次ページ内の iframe にアンカー付き URL が指定されていた場合にブラクラ化していたものを修正
Google Image 検索で「search」を含む単語を検索した際に以降の SeaHorse スクリプトが実行されないものを修正
ver 0.35 08/04/04
フレームページを多用したページで固まることがあった不具合を修正
ver 0.34 08/03/31
特定の PDF リーダを使用して PDF を開いた際に、エラーが表示される不具合を修正
window.AutoPagerize.addElementFilter() を追加(本家の addFilter() と同等のものです)
window.AutoPagerize.addDocumentFilter() を追加(本家の addDocumentFilter() と同等のものです
なお、window.AutoPagerize.addFilter() は、本家の addDocumentFilter() と同等のものなので、名称をいつか変更したいのですが、他の AutoPagerize 対応のスクリプトにも影響が出るため、名称変更を自粛しています)
window.AutoPagerize.SeaHorse を追加(クロスブラウザ対応の UserScript を作成する場合に、グリモン版の AutoPagerize と区別するために使用してください)
ver 0.33 08/03/26
flashの表示が乱れる場合に、それを回避できる設定「DELAY_ICON_FIX」を追加した
(有効にすると、副作用として、右上のアイコンがスクロールに追従する動きが鈍くなります)
※setting.js が変更されています
多少高速化したかも知れない
insertBefore が指定されていない場合に、ページの継ぎ足しが正常に行われない場合があったものを修正した
次ページの URI にマルチバイト文字が指定されていた場合にも正常に開けるようにした
フレーム対応(別ドメインのフレーム上では動きません)
ver 0.32 08/02/14
jQueryセレクタの:nth-last()が正常に動かない不具合修正
jQueryセレクタに:gt-last()追加
ver 0.31 08/02/13
jQuery1.2.3 にアップデート
ファイル名が変更されています。気になる方は、sleipnir インストールディレクトリ\plugins\seahorse\AutoPagerize\jquery-1.2.2.jsを削除してください。
タブを閉じたときの引っ掛かりを解消
※IE のメモリリーク対策として、jQueryが自動で window.unbind にイベントをアタッチしている処理を消した(jQuery.bind を使ってイベントをアタッチしていないため)
Picasa ウェブアルバムが正常に動かない不具合を修正
jQuery 内部でエラーが発生した場合にダイアログが表示されないように
ver 0.30 08/01/30
eraseString が不要になるように修正
SITEINFO に noDesignMode: true を記載することで、0.29以前のモードで動作するように(Google Image 等、スクリプトでページを生成しているサイトや、designMode でレイアウトが乱れるサイト用です)
ver 0.29 08/01/22
一部のサイトで正常に動作しない不具合を修正(ver 0.28での不具合)
ver 0.28 08/01/16
jQuery1.2.2 にアップデート
ファイル名が変更されています。気になる方は、sleipnir インストールディレクトリ\plugins\seahorse\AutoPagerize\jquery-1.2.1.jsを削除してください。
ver 0.27 08/01/15
メッセージ領域に自身のバージョン情報を表示するように
特定のサイトでサイト側の javascript が正常に動作しなくなる可能性があったので修正
lib.jsを削除しました。気になる方は、sleipnir インストールディレクトリ\plugins\seahorse\AutoPagerize\lib.jsを削除してください。
GoogleHighlight.user.js が GMail で誤爆する可能性があったので修正
サイトによってメッセージが正しい位置に表示されない不具合を修正
ver 0.26 07/12/19
insertBefore 未指定時に、次ページを読み込みに行くスクロール位置判定がおかしかったため修正
jQuery セレクタの :visible, :hidden が動作していない不具合を修正
ver 0.25 07/12/14
id="AutoPagerize" が指定されているサイトで動作しない不具合を修正
microformats での動作時に複数の AutoPagerize が実行されてしまう問題を修正
ver 0.24 07/12/11
microformats も通常の SITEINFO と同様 wiki で管理するように修正
insertBefore を指定しなくても動作するようにした(pageElement の後に足されます)
二重読み込み防止(スクリプトで iframe を追加すると二重読み込みするときがあったので)
一部色設定が反映されない箇所があったため修正
ver 0.23 07/11/26
次ページ受信時に、UTF-8 で取得した場合にも文字コードを変換してしまっていたので変換しないように修正
AutoPagerizeClearCache 実行後の最初の Web アクセス時に、AutoPagerize が実行されるように修正
AutoPagerizeClearCache 実行時にキャッシュファイルを削除した旨を表示するように修正
右上のヤツに読み込み済みページ数を表示できるようにした(setting.jsが変更されています。注意してください)
IE7 で position:fixed が使えるときは、右上のヤツを position:fixed で表示するようにした
ver 0.22 07/11/21
エラーが発生したときにエラーである旨を表示するようにした
右上の■をクリックすると on/off をトグルするようにした
色を設定できるようにした(setting.jsが 変更されています。注意してください)
ver 0.21 07/11/20
次ページのリンクを取得する際の URL エスケープ対策が完全ではなかったため修正
別ドメイン経由のリダイレクト時に MSXML2.ServerXMLHTTP が作成できなかった場合はエラー終了するように修正
ver 0.20 07/11/19
ver 0.18 の修正に不備があったため修正
ver 0.19 07/11/19
ページ挿入時に挿入できない場合がある不具合を修正
ver 0.18 07/11/19
次ページのリンクを取得する際の URL エスケープ対策不具合修正
ver 0.17 07/11/17
javascript が原因で固まるサイト用に、siteinfo に eraseString を追加した(詳細は wiki を参照)
ver 0.16 07/11/16
次ページのリンクを取得する際の URL エスケープ対策
ver 0.15 07/11/15
次ページへのリンクにドメイン名が含まれていない場合の対処
ver 0.14 07/11/15
Cookie を設定したときに正常に動作しないサイトがあったので Cookie 情報があったら設定するように修正
MSXML2.ServerXMLHTTP を使用時にリファラを設定した場合に動作しなかったため修正
ver 0.13 07/11/15
MSXML2.ServerXMLHTTP だと proxy を個別に設定する必要があるようなので、
通常は Microsoft.XMLHTTP を使用し、別ドメインへアクセスする際には MSXML2.ServerXMLHTTP を使用するように修正(これにより、通常時は proxy 設定が引き継がれるようになった)
ただし、別ドメイン経由でリダイレクトしてるサイト(Yahoo!, Ask.jp等)では、proxy 設定が引き継がれないが、これは仕様とするどうしても proxy 設定したい人は proxycfg.exe を使ってくれ
次ページ取得時に、referer を設定するようにした(テクノクラティ対策)
ver 0.12 07/11/14
次ページ取得時に Cookie 情報を設定するようにした。(ニコニコ動画対策)
ver 0.11 07/11/13
nextLink がリダイレクトされる場合にも正常に動作するように。(環境によってはリダイレクト未対応)
多少高速化したかもしれない
ver 0.10 07/11/08
本家 AutoPagerize の MICROFORMAT に対応
有効・無効の切り替えをドキュメントのダブルクリックではなく UserAction スクリプトで実行するように修正
多少高速化したかもしれない
ver 0.09 07/11/01
自動更新対応
nextLink が無くても、FORCE_TARGET_WINDOW が機能するように修正
ver 0.08 07/10/31
CSS セレクタで SITEINFO を記述するように変更(jQuery 使用)
ver 0.07 07/10/29
FORCE_TARGET_WINDOW をページを追加した際に起動していたが、ページを読み込んだときにも起動するように修正。
remainHeight を指定したときのページ読み込み位置がおかしかったので修正
ver 0.06a 07/10/25
SITEINFO追加
WebCG - エッセイ
WebCG - インプレッション
ver 0.06 07/10/24
SITEINFO追加
デイリーポータルZ
WebCG
livesearchhighlight.user.js 追加(googlehighlight の Live Search 版)
ver 0.05 07/10/23
SITEINFO追加
Live Search
tumblr(dashboard)
tumblr
コールバック関数を独自仕様で実装していたが、元々容易されているものを使用するようにした
ver 0.04 07/09/12
SITEINFO修正
Google グループ(topics)
Google News
Google Web History
ITmedia
SITEINFO追加
Fenrirユーザコミュニティ 検索
ver 0.03 07/09/10
sleipnirオブジェクトにアクセスできる可能性があったので、出来ないようにした
ver 0.02 07/09/08
文字化け解消
ver 0.01 07/09/07
新規作成
ダウンロード
AutoPagerize
OEI対応版はこちらからSleipnir Assembly House for Kittens - Sleipnir Syndication
SITEINFOを独自に作成したい人はsiteinfo.jsのベースファイル