風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

Google画像検索関連スクリプトの更新でいろいろはまる

また変わったのか…

ここ3ヵ月ほどネットから遠ざかっていたところ、

さて、この度、進化し続けるWeb と爆発的に増え続ける情報量に対応するために、Google では画像検索をリニューアルしました。今までと比べて、より見やすく、操作しやすいインターフェースに改善し、欲しい画像データにより早く、より簡単にたどり着くことができるようになりました。

Google Japan Blog: Google 画像検索がより快適に使えるようになりました

とまぁ、またしてもGoogle画像検索の仕様が変わってしまっていたので、

これにあわせて拙作の関連スクリプトである『AutoPagerize版・Google 画像検索対応スクリプト(apGoogleImageSearch)』および『単独動作版・Google画像検索AutoPagerスクリプト(GIS_AutoPager)』も修正しました。

Google画像検索関連スクリプトを更新(AutoPagerize版ver.0.01k/単独版ver.0.04): 風柳亭

と相なったわけですが……いろいろはまってしまいました。


以下、覚え書きを兼ねて。

■『標準形式』←→『簡易形式』間を切り替えても(Cookie等に)保存されない

『標準形式』となったタイル型レイアウトまでサポートできないぜ、とばかりに、拙作スクリプトは『簡易形式』のみサポートとしたまではよいのだが、『標準形式』から『簡易形式』に切り替えても*1、この設定は保存されず、トップページに戻ったりすると失われてしまう。

幸い、現在『簡易形式』かどうかは、URLに"&sout=1"がついているかどうかで判別出来るため、ついていない場合はURLにこれを追加して画面をリロード(location.replace())させる、ということでなんとかしたが*2

■Chrome版で、なぜかCSSが反映されなくなっている…

改修前に何気なく動作確認してみると、なぜかChrome版でのみ*3ヘルプ画面が見えなくなっておりまして*4……おかしい、少なくとも0.0.3のリリース時には表示されてたはずなのに。
調べてみると、manifest.jsonで指定したcssファイルの内容が、何故か反映されてない模様。いっしょに指定しているjsファイルの方は問題無く動いているのに。

色々試した結果、manifest.jsonの"content_scripts"では、

      "matches": [
        "http://*/images?*"
      ],

だとNG(対応するcssファイルが無視?される)で、

      "matches": [
        "http://*/images*"
      ],

だとOK(対応するcssファイルは正常に反映される)、らしい。
多分、"matches"構文中に「?」が含まれていると、これに対応したcssファイルが読込まれなくなる(jsファイルの方は「?」が含まれていても読込まれる)、のかな?……なにか理由があっての仕様変更なのだろう…か?

■Chrome版で、AutoPagerizeと干渉してしまう…→【2010/10/08】解消済

【2010/10/08追記】
swdyhさんが対応してくださり、バージョン: 0.2.0 のAutoPagerizeでは下記の問題(GIS_AutoPagerとの動作のかちあい)はなくなりました。
対応ありがとうございました>swdyhさん。



正直、一番困っているのがこれ。

Chrome版をテストしていると、ページングの途中で正常に動かなくなったりする…あれ、とか思っていると、何故かアドレスバーにApアイコンが出ている……Google画像検索のページは、AutoPagerizeのオプション設定で無効にしてあったはずなのに。


色々試してみても、なぜかGoogle画像検索のページでAutoPagerizeが無効化できない……で、バージョン 0.1.9のファイルを覗いてみると、どうも、.\filter_js\google_image.user.js というフィルタ(プラグイン?)が含まれており、これが強制的に実行されることで、独自にGoogle画像検索に対応しているみたいなんだけれど……これ、無効化できないのは辛いなぁ……現状はmanifest.jsonで指定されているので、ソースを直接書換えないと対応出来ない気がする…。
.\filter_js以下の機能を任意にON/OFFするようにはできないでしょうか?>id:swdyh さん。

うーむ、現状、こちら側では回避方法がないので……GIS_AutoPagerを諦めるか、AutoPagerizeの代わりにAutoPatchWorkを使うか*5、くらいか。

*1:そもそもこの切替を行なう“簡易形式に切り替える”リンクは、検索結果画面をずるずるスクロールして一番下まで行かないと出てこない…『簡易形式』なんて使わせないぜ、というGoogleの意思表示か?

*2:画面のバタつきが余分に発生してしまうけれども。

*3:といってもメインとなるjsとcssファイルは共通。

*4:正確には画面の一番下に表示されてしまう。

*5:AutoPatchWorkの方は、Exclude Filter by URLを指定してやることで問題無くGoogle画像検索のみを無効化可能。