Sooey

2010-10-24 17:50:38 +0900

そろそろ過去のコンテンツを探せるようにしたほうがよさそうなので、Googleカスタム検索を組み込みました。ロゴ下にある虫眼鏡をクリックすると検索フォームが出てきます。

Googleカスタム検索は、以下のようなコードをHTMLに埋め込めばページ内で検索結果の表示までできるようになります(コード自体は管理画面で取得できる)。

<div id="cse">Loading search form...</div>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
  google.load('search', '1', {language : 'ja'});
  google.setOnLoadCallback(function() {
    var customSearchControl = new google.search.CustomSearchControl('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
    customSearchControl.setResultSetSize(google.search.Search.SMALL_RESULTSET);
    var options = new google.search.DrawOptions();
    options.setAutoComplete(true);
    customSearchControl.draw('cse', options);
  }, true);
</script>

デフォルトだと、サイト内検索であっても検索結果が別ウィンドウで開いちゃってイマイチなのですが、上記のコードで使われているgoogle.search.CustomSearchControlオブジェクトは、google.search.SearchControlの機能を引き継いでいるようなので、

  customSearchControl.setLinkTarget(google.search.Search.LINK_TARGET_SELF);

という処理を追加したら期待した動作になりました。