参考文献:Google AJAX Search API的类文档:http://code.google.com/intl/zh-CN/apis/ajaxsearch/documentation/reference.html#_class_GlocalResult
第一步:构造一个搜索服务“容器”
google.search.SearchControl 的实例代表页面上的一个搜索控件,这个控件是多种“搜索服务”的“容器”。
第二步:构造一个搜索“服务”对象
google.search.LocalSearch()、这个构造函数可以构造一个“搜索服务容”对象。“搜索服务”是我自己起的名字,之所以叫这个名字是因为我认为它的核心是服务。尽管默认的是有一个搜索框和结果列表,但这些都是可以被改变的,甚至搜索结果的内容都是可以改变的,因为我认为这个构造函数的核心是一个“服务”。
第三步:像容器中添加“搜索服务”
searchControl.addSearcher(searcher, optiions)。options的类型为google.search.SearchOptions。可以添加的搜索服务有多种,到目前为止Google提供了以下类型的搜索器:
google.search.LocalSearch
google.search.WebSearch
google.search.VideoSearch
google.search.BlogSearch
google.search.NewsSearch
google.search.ImageSearch
google.search.BookSearch
google.search.PatentSearch
第四步:SearchControl对象调用draw方法,按照里面的DrawOptiions参数画出搜索框。
searchControl.draw(document.getElementById("from"), drawOptions)
这是一般的流程,但Google提供了很多选项来定制这些服务。主要的选项有两种,一种是SearcherOptions,另一种是DrawOptions。
google.search.SearchOptions
控制扩展模式
将各个搜索器添加到搜索控件后,可选的第二个参数(google.search.SearcherOptions
对象)可以控制每个服务的默认扩展模式,这将影响在网页上的该服务位置中将显示多少搜索结果。扩展模式可以为以下模式之一:
google.search.SearchControl.EXPAND_MODE_OPEN:
在对象中尽可能完整显示的结果。
google.search.SearchControl.EXPAND_MODE_CLOSED:
结果被从视图中隐藏,除非通过使用 UI 元素(例如箭头)打开。
-
google.search.SearchControl.EXPAND_MODE_PARTIAL:
结果显示为“开放”扩展模式的子集。
控制搜索器结果位置
某些应用程序中,需要将给定服务的搜索结果投影到网页上的任意位置。可以通过使用服务对应的搜索器对象的 setRoot()
方法支持此运行模式。
设置无结果时的提示显示
//no results message