« ウィキペディア(Wikipedia)の脚注もその場で見る | トップページ | AutoPagerlike: 『次へ』リンクが無い場合の対処方法を考える »

2008/03/20

AutoPagerlike: Sleipnir+SeaHorse版 AutoPagerize(もどき)

メインブラウザとして使っているSleipnirでAutoPagerizeが使えないのが悔しかったので(?)、トライしてみました。
■SeaHorseスクリプト(Sleipnir専用)
SeaHorseの使い方については、例えばこちらとかこちら
これで、とりあえず Google はじめ、いくつかのサイトでページの追加表示が可能となりました。
オリジナルで対応しているサイトであっても、うまく表示出来ないことも多いと思います。ご了承下さい。
【追記】って、既にAutoPagerize for SeaHorseという、そのものずばりのものが公開されていることに公開してから気付いてこ(rya…… orz。
【2008/03/30追記】
設定ファイルを独立させました。
これは、本体と同じところ(デフォルト:C:\Program Files\Fenrir & Co\Sleipnir\plugins\seahorse)に置いておきます。
ユーザがローカルでSITEINFOを追加したい場合などは、このファイル(!!autopageroptions.user.js)を書き替えます。
バージョンアップ時には、本体(!autopagerlike.user.js)のみを上書きすればよく、設定ファイル(!!autopageroptions.user.js)は上書きしなくてすむようにしたわけです。
■謝辞
AutoPagerize作者のid:swdyh さん、すばらしいツールを世に出してくださってありがとうございます。
id:amachangさん、IE系ブラウザでも簡単に使えて高速に動作する XPath 実装を公開してくださって感謝します。
■覚書など
  • オリジナルにはついているメニューは未作成。時間があれば、作るかも。
    というか、停止がないと、下の方にメニューやリンクがあるサイトだと大変だということにさっき気付いた(笑)
    • 【2008/3/30】メニューを追加。とりあえず、機能のON/OFFは出来るようになった。
  • SITEINFOデータの取得方法。Greasemonkeyならドメイン越えてページが取得出来るみたいなのだが、SeaHorseではやり方がわからない……。
    JSONPに変換して取得するようにした。
    なのでリアルタイムではない。定期的な自動更新しようかと思ったが、オリジナルのページが大人気のせいか重くて取得出来ないことも多く、ちょっと危険なのでしばらく手動で様子見。
    • 【2008/3/30】JSONPデータは1時間毎に更新するようにした。
  • SITEINFOはXPathが使われているので、そのままではIE系では使えない。
    →ActiveXObject("MSXML2.DOMDocument")を使ってXML→HTMLのオブジェクトマップを作って対応しようとしたが、HTMLをloadXML()に通せるようなXMLファイルへと整形するのがやたら面倒。一応作ってはみたが、処理時間もかかるしで断念。
    →結局、素直にJavaScript XPath(http://coderepos.org/share/wiki/JavaScript-XPath)を使うようにした。
    最初からそうすればよかったなぁ……。
  • XMLHttpRequestで取得したresponseTextから要素を切出す方法もしばし悩む……document.implementation.createDocument()って、IEになかったよなぁ……。
    →よく使っている、div要素に流し込む方法だと、JavaScript XPathでちゃんと要素の取得が出来ない(やり方悪いだけかもしれないけれど)。
    →で、iframe要素のcontentWindow.documentをopen()して、write()することに。これならJavaScript XPathで指定した要素が正しく取れる。
    →取れた要素は今度は親document配下には追加出来ない……仕方なく、一旦outerHTMLから要素を作りなおしたものを追加するようにした。
    もっとスマートな方法があるんだろうなぁ……。
    • 【2008/3/22】iframeの代わりにActiveXObject('htmlfile')を使用するようにした。
  • ページによってはXMLHttpRequestで取得したresponseTextが文字化けしてしまう……orz。
    →仕方がないので、document.charsetがutf-8以外なら、iframeのsrcで読ませることにした。ページの読込みが完了しないとcompleteにならないのと、ナビゲーション開始音がうざいけれども(音の方はコントロールパネルで消せばよいが)。
    • 【2008/3/22】UTF-8以外はsleipnir.CreateObject('ADODB.Stream')を使用して変換(ActiveXObject("ADODB.Stream")はNG)。

« ウィキペディア(Wikipedia)の脚注もその場で見る | トップページ | AutoPagerlike: 『次へ』リンクが無い場合の対処方法を考える »

パソコン・インターネット」カテゴリの記事

おもいつき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: AutoPagerlike: Sleipnir+SeaHorse版 AutoPagerize(もどき):

« ウィキペディア(Wikipedia)の脚注もその場で見る | トップページ | AutoPagerlike: 『次へ』リンクが無い場合の対処方法を考える »

戻るリンク追加

カレンダー

2019年9月
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          

ココログカレンダーPlus

検索


    • Web全体 サイト内
    • 蔵書のISBNを入力して下さい
    • はじめる前
      初級者向け
      上級者向け
      ブログ紹介
      結果を表示

最近のトラックバック

コメントリストツリー化

無料ブログはココログ