11

ページに到達するために使用した検索エンジンのキーワードをハイライト表示する Web サイトを見たことがあります。(Google 検索リストに入力したキーワードなど)

検索エンジンに入力したキーワードをどのように認識しますか? リファラー HTTP ヘッダーなどを調べますか? これを実行できるスクリプトはありますか? サーバー側またはJavaScriptの可能性がありますが、わかりません。

4

3 に答える 3

15

これは、サーバー側またはクライアント側のいずれかで実行できます。検索キーワードは、HTTP Referer (sic) ヘッダーを調べることによって決定されます。JavaScript では、 を見ることができますdocument.referrer

リファラーを取得したら、それがあなたが知っている検索エンジンの結果ページかどうかを確認し、検索語を解析します。

たとえば、Google の検索結果には次のような URL があります。

http://www.google.com/search?hl=en&q=programming+questions

qクエリ パラメータは検索クエリであるため、それを取り出して URL エスケープを解除すると、次のようになります。

programming questions

次に、ページ上の用語を検索し、必要に応じてそれらを強調表示できます。このサーバー側で実行している場合は、クライアントに送信する前に HTML を変更します。クライアント側で行う場合は、DOM を操作します。

this oneのように、これを行うことができる既存のライブラリがあります。

于 2009-05-25T16:44:03.373 に答える
8

これに気付くのは、おそらく遅すぎて違いを生むことができません...

お願いします。これを達成する方法を見つけてから、決して実行しないでください。Web ユーザーとして、これを自動的に行うサイトに出くわすと、非常に煩わしい (そして気が散る) と感じます。ほとんどの場合、ページ上の他のすべての単語が強調表示されてしまいます。ページ内の特定の単語を見つける手助けが必要な場合、私のブラウザには、より適切な「検索」機能が組み込まれています。この機能は、ページ全体をリロードして移動するのではなく、自由に使用または使用できません。私がそれを望まないときは離れてください(これはほとんどの場合です)。

于 2009-07-08T08:10:49.070 に答える
4

基本的に、あなた...

  1. 調べdocument.referrerます。
  2. 検索語を含むパラメーターを取得するドメインのリストを用意します。

    var searchEnginesToGetParam = {
        'google.com' : 'q',
        'bing.com' : 'q'
    }
    
  3. 適切な GET パラメータを抽出しますdecodeURIComponent()

  4. 用語を強調表示するテキスト ノードを解析します (テキストを JavaScript で置き換える を参照)。
  5. あなたは終わった!
于 2009-10-30T00:06:23.803 に答える