上のようなサイト内検索が必要になったとしても、そのサイトが提供していなかったら意味がない。どのサイトでもサイト内検索を可能にする方法を紹介する。
次の二つのアンカーをポイントしてコンテクストメニューを開き、ブックマーク(お気に入り)に登録し、ブックマーク(お気に入り)を呼び出す形で実現できる。
ブックマークレット(Bookmarklet)は、ブックマーク(お気に入り)を選択する手順で、現在表示しているページのコンテクストでJavascriptを実行するというもの。ブラウザによっては、「リンク」と呼ばれるフォルダ内に登録しなければならないので注意が必要。
私自身が行なっている方法も紹介しておく。上記ブックマークレットを応用したもので、アドレスバーに「site? 検索したい文字列」と入力してEnterキーを押せばサイト内検索できるようにする。
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検索する |
独自ドメインの場合、「site? 」に続けて検索文字列を、サブサイトの場合、「subsite? 」に続けて検索文字列をアドレスバーに入力してEnterキーを押せばいい。キーワードの後に半角スペースがある点に注意。
|
|
親切なウェブサイトは検索機能を提供していることがある。しかし検索機能は個々のウェブサイトの特殊機能ではない。本当に閲覧者の立場に立って考えてみるならば、検索機能を提供しているサイトと提供していないサイトが混在している状況よりも、ブラウザがサイト内検索機能を提供してくれていたほうが良いに決まっている。つまりこれはウェブサイトのユーザビリティの問題ではなくて、ブラウザのユーザビリティの問題なのだ。ブラウザが駄目だから、ウェブサイトが仕方なく実装する機能としてサイト内検索がある。これが本来あるべき姿からみた現状である。
そしてこれは、ウェブサイトの提供する検索以外の多くの「機能」にも当てはまると言えるだろう。ウェブサイトの制作者が提供すべき「コンテンツ」と、提供すべきでない「機能」を混同している制作者が多すぎる。