User-Javascriptに個人的嗜好のくだらない機能をつけて遊んでいる今日この頃だが、Googleのサイト内検索機能をつけてみようと思い、軽い気持ちでスクリプトを書いてみた。
サイト内検索というのは、「検索語句 site:www.yahoo.co.jp」で検索すると、www.yahoo.co.jpドメイン内のみの検索結果が得られるというあれ。
試したのは、javascirpt promptに、検索語句を入力して、'http://www.google.co.jp/search?hl=ja&as_q=' + 検索語句 + '+site%3A' + document.domain; で、window.open
するだけの極簡素なもの。
ところが、どうやっても「検索語句」以下の文字列の連結ができない。
ここで、IEではjavascript promptに日本語が使えないのを思い出したが、私は我侭なので、どうしてもpromptを使いたかった(入力用の要素を生成するのが面倒)。検索語句を改めてStringオブジェクトとして生成してみたり、escapeメソッドや、Arrayオブジェクトのjoinメソッドを使ってみたり、それはもう(私の頭で)考えられる限りの手を尽くした。
で、結局成功したのが、promptに入力した文字列を、一度document.title
に代入して、document.title
を連結するという方法。なんだかなあ。
オチとしては、文字列の連結はなんとか成功したものの、その連結文字列でwindow.open
すると今度はGoogleに正しく渡されなかった。要するにURIでやろうとしたのが間違いだったということ。面倒臭がらずにちゃんとformを生成しないと駄目だ。