0

私は現在 Google CSE を使用していますが、特定の検索ワードにジャンプできるかどうか疑問に思っています。たとえば、自分のページで出版物という単語を検索し、ページに出版物のセクションがある場合、実装されている Google 検索を使用してこのセクションに直接ジャンプすることは可能ですか?

現時点では、検索を行うたびに、キーワードが配置されているページの先頭に移動します。

挨拶マーティン

4

1 に答える 1

0

はい、これは可能ですが、コーディングを行う必要があります。Google 検索がどのように機能するかを考えると、リンクのリストが生成されるだけです。他のページに到達すると何が起こるかを制御することはできません。そのため、目的のページで実行したいことはすべて、自分でコーディングする必要がありました。本当にこれを行いたい場合は、次のように設定できます。

まず、V1 CSE を使用することをお勧めします。これは、検索完了時にコールバック関数を設定する機能を提供するためです。これは、新しく単純化された V2 にはありません。ここで V1 ドキュメントを参照してください: https://developers.google.com/custom-search/docs/js/cselement-devguide

コールバック関数を追加するように変更された、そのページのサンプル コードを次に示します。

<!--
  copyright (c) 2012 Google inc.

  You are free to copy and use this sample.
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Custom Search Element API Example</title>
    <script src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load('search', '1');
        google.setOnLoadCallback(function(){
          customSearchControl = new google.search.CustomSearchControl().draw('cse');
        }, true);
          customSearchControl.setSearchCompleteCallback(this, searchCompleteFn);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="cse" style="width:100%;">Loading...</div>
  </body>
</html>

次に、そのコールバック関数を次のように作成できます。

function searchCompleteFn(control, searcher) {
    //your code
}

コードでは、cse div 内のすべての a.gs-title 要素を取得し、それらの href 属性を変更してユーザーのクエリを追加する必要があります。こうすることで、リンク先ページでユーザーが検索した内容を確認し、適切なアクションを実行できます (適切なセクションまでスクロールし、キーワードを強調表示するなど、必要に応じて)。たとえば、既存の href がhttp://www.yoursite.com/somepath/somepage.htmlの場合、 http://www.yoursite.com/somepath/somepage.html#query=[user_query] に変更できます。 .

[user_query] は control.getInputQuery() によって与えられます

最後に、目的のページで、location.hash のクエリ パラメータを JavaScript でチェックし、適切に処理します。

これはあなたが興味を持っているよりもはるかに多くの作業だと思いますが、おそらく誰かの役に立ちます.

于 2013-02-19T08:15:59.927 に答える