Google CSE - 跳转到特定关键字

时间:2013-01-14 14:35:42

标签: html google-custom-search

我目前正在使用google cse,我想知道是否可以跳转到特定的搜索词。例如,如果我在我的页面上刊登了出版物这个词,并且页面上有一部分出版物,是否可以通过使用已实施的谷歌搜索直接跳到此部分?

在我进行的每次搜索时,都会将我引导到放置关键字的页面的开头。

问候马丁

1 个答案:

答案 0 :(得分: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中检查查询参数,并采取相应的行动。

我猜这是比你感兴趣的更多的工作,但也许对某人有帮助。