サイト内の検索について

上のようなサイト内検索が必要になったとしても、そのサイトが提供していなかったら意味がない。どのサイトでもサイト内検索を可能にする方法を紹介する。

ブックマークレットを使う方法

次の二つのアンカーをポイントしてコンテクストメニューを開き、ブックマーク(お気に入り)に登録し、ブックマーク(お気に入り)を呼び出す形で実現できる。

ブックマークレット(Bookmarklet)は、ブックマーク(お気に入り)を選択する手順で、現在表示しているページのコンテクストでJavascriptを実行するというもの。ブラウザによっては、「リンク」と呼ばれるフォルダ内に登録しなければならないので注意が必要。

Firefox限定の方法

私自身が行なっている方法も紹介しておく。上記ブックマークレットを応用したもので、アドレスバーに「site? 検索したい文字列」と入力してEnterキーを押せばサイト内検索できるようにする。

1/3. Firefoxを入手

Firefox 2 無料ダウンロード

2/3. ブックマークレットを作成

Firefoxを起動してブックマークの管理を開き、ファイルメニューから以下のような新しいブックマークを作成する。

ドメインを持っているサイト用
名前サイト内検索
場所javascript:(function(){var hn = location.hostname;location.href = 'http://www.google.com/search?q=site:' + hn + encodeURIComponent(' %s');})();
キーワードsite?
説明現在開いているページと同ドメイン内をGoogle検索する
他人のドメインを利用しているサイト用
名前サブサイト内検索
場所javascript:(function(){var url = location.hostname+'/'+location.pathname.split('/')[1];location.href = 'http://www.google.com/search?filter=0&hq=inurl:' + url + '&q=' + encodeURIComponent('%s');})();
javascript:with(location){ assign( ['http://www.google.com/search?q=site:', hostname, '/', pathname.split('/')[1], '/', encodeURIComponent(' %s')].join('') ) };
キーワードsubsite?
説明現在開いているページと同じサブドメイン内をGoogle検索する

3/3. 使用する

独自ドメインの場合、「site? 」に続けて検索文字列を、サブサイトの場合、「subsite? 」に続けて検索文字列をアドレスバーに入力してEnterキーを押せばいい。キーワードの後に半角スペースがある点に注意。

独自ドメインの場合
site? 検索したい文字列
サブサイトの場合
subsite? 検索したい文字列

あとがき

親切なウェブサイトは検索機能を提供していることがある。しかし検索機能は個々のウェブサイトの特殊機能ではない。本当に閲覧者の立場に立って考えてみるならば、検索機能を提供しているサイトと提供していないサイトが混在している状況よりも、ブラウザがサイト内検索機能を提供してくれていたほうが良いに決まっている。つまりこれはウェブサイトのユーザビリティの問題ではなくて、ブラウザのユーザビリティの問題なのだ。ブラウザが駄目だから、ウェブサイトが仕方なく実装する機能としてサイト内検索がある。これが本来あるべき姿からみた現状である。

そしてこれは、ウェブサイトの提供する検索以外の多くの「機能」にも当てはまると言えるだろう。ウェブサイトの制作者が提供すべき「コンテンツ」と、提供すべきでない「機能」を混同している制作者が多すぎる。

webmaster@jintrick.net
Published: 2007-09-28 ,Updated: 2009-02-27