Google検索で AutoPagerize や AutoPatchWork などを強引に動作させる

追記: 次の記事 でこの記事に書いてあることをやらなくても 「Google検索で AutoPager は正常に動作した」を書いた.

Google ChromeAutoPatchWork を使っている.これはいろいろなブログや検索ページなどで,次のページを自動的に読み込んでくれる拡張機能である.同種の拡張機能は他のブラウザのものも含めていくつかある.

さて,ここ最近,といっても数ヶ月前からであるが Google のトップページから検索するとこの機能が動作しなくなった.最初は単にGoogleの検索結果のurlの書き方が変わって動作しなくなったものと思っていたが,http://xkansan.tumblr.com/day/2011/04/03 によると JavaScript を使って検索結果を表示するようになったので,AutoPatchWork が動作しなくなったらしい.

これを解決するために,検索結果のページの url を Ajax ではない旧来のページの url へ強引に書き換える方法が紹介されていたのでやってみた.userscripts.org に既にスクリプトをアップされている方がいたので以下のようにしてやった.
試した環境は Win Vista 上の Chrome11 + AutoPatchWork,Firefox4 + Greasemonkey + AutoPagerize

  1. Google Search AJAX Killer ( http://userscripts.org/scripts/show/101838 ) に Google Chrome もしくは Firefox からアクセスし緑の Install ボタンをクリック.
  2. Chrome の場合は画面下部に警告が出てくるので,「続行」をクリック.
  3. Google Search AJAX Killer をインストールしますか?」と聞かれるので「インストール」をクリック.

これでインストールされる.ちゃんとインストールされたかどうかはアドレスバーに

と入力すれば拡張機能の設定画面が出てくるので確認できる.アンインストールや一時的な無効化もこのページから行える.

Google Search AJAX Killer をインストールしてGoogle のトップページから検索してみると確かに AutoPatchWork,AutoPagerize は動作した.

すこしおかしな挙動があって,それはインスタント検索の途中で確定されたり,トップページから検索してもう一度そのページから検索を行おうとするとオートコンプリートが効かなくなるといったものだ.これはGoogle検索したときにオートコンプリートを無効にするパラメータ &complete=0 を付加していることに起因すると思われる.現時点ではこのパラメータを付けなくても,AutoPatchWork などは動作するようだ.よって取っ払ってみる.
それには Google Search AJAX Killer のスクリプトを開いて,例えばその17行目をコメントアウトして

// var params = [query, "complete=0"].join("&");
var params = query;
とでもすればいいと思う.

スクリプトのある場所は

こうやると今のところ満足する挙動が得られている.ただこの先どうなるかはわからない.

アンインストールや無効化も簡単なので,AutoPacthWork,AutoPagerizeが動かなくてストレスを感じているならやってみていいと思う.

ちなみに,Google Search AJAX Killer を入れたことによって Chrome では word highlight もちゃんと動作するようになった.