Google の検索結果で AutoPagerize が動かないという報告がなされている。
一例:
- http://twitter.com/Graviton/statuses/53625258510516224
- http://twitter.com/eden_519/statuses/53468152067129344
- http://twitter.com/2E7_DCCXLIII/statuses/51545998304100352
これは Google のトップページ(http://www.google.com/ 等)から検索した際にブラウザの JavaScript を有効にしていると生じる問題の様だ。
なので、
- ブラウザの検索ボックスから検索する
- ブラウザの JavaScript を Off にして Google のトップページから検索する
といった状況では、Google の検索結果で問題なく AutoPagerize が動作する。
一応確認用の URL を貼っておく。
- 動作する場合の URL 例: http://www.google.com/search?q=autopagerize
- 動作しない場合の URL 例: http://www.google.com/webhp?hl=ja#q=autopagerize
なお、以上は
- Firefox 3.6.16
- Greasemonkey 0.9.1
- AutoPagerize for Greasemonkey 0.0.58
で確認した。
で、動作しない方のページでは JavaScript でページの要素を生成しているため SITEINFO (http://wedata.net/items/472) の編集では問題が解決できない。 ブラウザの検索ボックスから検索すれば済む話ではあるけれど、 http://twitter.com/Hamachiya2/status/18414633403 のようにトップページからの検索にこだわりを持つ人もいるので、そういった場合でも AutoPagerize が動作する方法を考えてみた。
とりあえず Google の検索結果ページの URL を書き換えてやれば良さそうなので、そのような Greasemonkey スクリプトを用意する。
(function() { window.addEventListener('hashchange', function() { if (/^https?:\/\/[^./]+\.google(?:\.[^./]{2,3}){1,2}\/(?:webhp)?/.test(location.href) && /^#(?:[^=]+=[^&]*&?)+$/.test(location.hash)) { location.href = location.protocol + '//' + location.host + '/search?' + location.hash.substr(1); } }, false); }());
これで Google のトップページから検索した場合でも AutoPagerize が動作するようになる。
などで試して問題なく動作することを確認した。
追記
上記のコードを少し変更したものを https://bitbucket.org/xKairouan/google_search_without_hash においた。