JavaScriptで検索ワードをハイライトする

Posted by
ぴろり
Posted at
2007/04/12 22:38
Trackbacks
関連記事 (0)
Comments
コメント (1)
Post Comment
コメントできます
Category
電算室

 ユーザがなどのエンジンを経由してサイトを訪問をした際に, そのユーザがに使ったページ中の語彙を ハイライト表示する方法を紹介します。 ユーザはハイライト表示された部分を流し読みすることで, 必要とするを素早く発見できるようになります。
 最低限,のファイルを一つ読み込むだけなのでとてもお手軽です。

この記事をはてなブックマークに追加する この記事のはてなブックマーク数 | この記事をlivedoorクリップに追加する この記事のlivedoorクリップ数 | この記事をYahooブックマークに追加する この記事のYahoo!ブックマーク数 | この記事をdel.icio.usに追加する

実装の例

 例えば, Google で"movabletype mixi プラグイン"を検索すると, 上位にこのサイトの1ページであるmixiSyncの紹介ページが表示されると思うのでを開いてみてください。 ページの中にある""や""といった単語がハイライト表示されているのがご覧になれると思います。
 対応しているエンジンは, AllTheWebGoogleLycosMSNYahooとのことで, 語でもほぼ期待した通りに動作してくれました。 またエンジン以外からの訪問の場合にはハイライト表示は機能しないので, 他のビジタの方には従来通りにサイトを閲覧して頂けます。

組込み方

 既存のページへの組込みは至って簡単です。 ハイライト表示機能を使いたいページでファイルを一つ読み込むだけで, ページ全体に含まれる文字列を対象にしてハイライト表示が行なわれるようになります (特定の要素内でだけハイライト機能を有効にする方法は後述)
 ファイルを読み込むだけなので,やWordPress,XOOPS,Wikiなどのから, 一般的なホームページでも幅広く使用することができます。

se_hilite.js の

 Scott Yang氏が Search Engine Keyword Highlight with Javascript で公開されている se_hilite.js 1.2 (最新版)を使用します。

se_hilite.js の書換え

 したse_hilite.jsそのままでは語の単語区切りを正しく判断しません。 そこでエディタで se_hilite.js を開いて次の行を書き換えてください。 書換えが終わったら上書き保存してサーバにアップロードしておきます。

se_hilite.js の組込み

 ハイライト表示機能を使いたいページで se_hilite.js を読み込みます。

スタイルの追加

 最後にハイライト表示される領域のスタイルを定義します。 se_hilite.js の標準では, ハイライトされる領域は語彙の 1 番目が htlite1, 2 番目が hilite2…という名前のクラスが適用されます。 そこでお使いの に以下のようなスタイル定義を追加します。

高度な組込み方 その1

 se_hilite.js ファイルを組み込んだだけではページ全体が処理の対象となってしまうため, 例えばコメントの名前欄やアフィリエイトの商品名などの意図しない部分までもが対象になってしまいます。
 そこで,ハイライト表示を有効にしたい領域を content または container という ID を持つ DIV などで囲むと, その要素の中の文章だけが対象になります。

高度な組込み方 その2

 このサイトでは,記事の概要文,本文,トラックバック欄,コメント欄についてハイライト表示を行なっていますが, 元のコードでは複数の領域に対してハイライト表示を有効にする方法が見つかりませんでした。 そこでスクリプトに少し改造を施して, ハイライト表示を有効にする領域を自由に設定できるようにしてみました。 元のコードに Hilite.addTarget というメソッドを追加して, このメソッドを使って処理の対象となる要素を自由に追加できるようになっています。


この記事を読んだ人はこんな記事も読んでいます ?

その他の関連する記事

この記事のアーカイブ

全てのカテゴリ »
電算室
全てのタグ »
, , , ,
全ての記事 »
2007年

関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事のトラックバック URL

寄せられたコメント (最新 5 件を表示しています)

Posted by
碇敏昭
at
2007/09/19 11:52
ID
zfdzsxDc

上西 宏幸 様

『検索ワードをハイライトする』機能で困っておりコメントさせて
頂きました。もし情報をお持ちでしたら教えてください。

職場でWebcelというソフトでキーワードを3個設定し、アクセスの
DBより情報を検索する仕様を運用してます。
その際、利用者より『検索ワードに色を付けてほしい』との要望が
あり、上西様のサイトにたどり着きました。

検索エンジン経由でなく、『検索キーワード』を認識したところから
スタートする展開で『検索ワードをハイライトする』機能ができない
ものかと考えているのですが。

以上 宜しくお願いします

コメントを投稿する

 (必須/公開)
 (必須/非公開)
 

コメントスパム防止のため投稿前に ランダムな数字 ? を入力してから投稿してください。 お手数ですがご協力のほど宜しくお願いいたします。(必須)