Search Bar On Browser_3

三、MozSearch标准

参见:http://developer.mozilla.org/en/docs/Supporting_search_suggestions_in_search_plugins

1.       Supporting search suggestions in search plugins

MozSearch支持搜索提示,当用户在搜索栏中输入信息时,Firefox 2中搜索引擎插件会指定URL区获取实时的搜索提示。

一旦这个匹配的列表找到后,会在搜索栏下弹出栏中显示,可以让用户选择一个合适的查询术语。如果用户继续输入,新的提示请求搜索引擎,显示的列表重新刷新。

 

YahooGoogle的搜索引擎包括Firefox 2 支持的查询提示。

 

2.       Implementing suggestion support in the search plugin

为了支持查询提示,一个搜索引擎需要定义一个额外的<url>元素来和类型设置为"application/x-suggestions+json"一致。这就意味着支持提示的引擎插件有2<url>元素,另外一个是主要的text/html类型的查询URL

 

例如,Yahoo的搜索引擎有这样的<url>入口:

<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}"/>

如果用户在查询栏中输入”fir”,然后暂停,Firefox将用”fir”代替{searchTerms}并查询这样的URL

<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command=fir"/>

查询结果用于构造提示列表

参见Creating MozSearch plugins获取更多关于如何执行一个搜索引擎。

 

3.       Implementing search suggestion support on the server

处理搜索提示的主要工作实际上是在服务器上执行。如果你是一个网站设计者,并且想支持搜索提示,你需要为获取一个查询条件从JavaScript Object Notation(JSON)返回提示。

 

当浏览器想要获取可能对应的搜索术语,之后通过<url>元素发送一个Http GET请求给URL

 

你的服务端取决于提供的建议,组成一个JSON包括至少2个至多4个元素。

 

4.       Query String

JSON中的第一元素是原始的查询字符串。这个允许Firefox来验证提示是否对应现在的查询术语。

 

5.       Completion list

一个提示查询术语的数组。这个数组加上方括号。例如["term 1", "term 2", "term 3", "term 4"]

 

6.       Descriptions

这个可选元素是一个完成列表中每个提示信息描述的数组。还有搜索引擎额外的信息能够返回在浏览器上显示,比如这个可用搜索结果的数量。

 

注意,Description不支持Firefox 2,任何指定会被忽略。

 

7.       Query URLs

这个可选元素是一个在完成列表中为每个提示的一组交替的URLs。例如,如果你想提供一个地图链接来代替一个给定提示的查询结果页,你可以在这个数组中返回一个指向此地图的URL

 

如果你不指定查询的URL,默认的查询是使用基于查询描述,这个查询描述是在搜索插件的XML描述中的<url>元素。

 

注意,查询URLs不支持Firefox 2,并会被忽略。

 

比如,如果查询关键字为”fir”,你不需要返回描述或是查询的URLs,你可以返回下面的JSON

["fir", ["firefox", "first choice", "mozilla firefox"]]

注意在这个例子中,只有查询字符串和完成的数据能够被指定,可选的元素不予考虑。

 

你的完整列表能包括你所喜欢的很多提示,虽然这些提示易于管理,但是当用户输入他们的查询字符串时能动态更新的显示。另外,你用于选择提示的方法是完全取决于你的。

 

8.       Creating MozSearch plugins

1Example: searching Yahoo!

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Yahoo</ShortName>
<Description>Yahoo Search</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,R0lGODlhEAAQAJECAP8AAAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIplI+py+0NogQuyBDEnEd2kHkfFWUamEzmpZSfmaIHPHrRguUm/fT+UwAAOw==</Image>
<Url type="application/x-suggestions+json" method="GET"
     template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />
<Url type="text/html" method="GET" template="http://search.yahoo.com/search">
  <Param name="p" value="{searchTerms}"/>
  <Param name="ei" value="UTF-8"/>
 
  <MozParam name="fr" condition="pref" pref="yahoo-fr" />
</Url>
<SearchForm>http://search.yahoo.com/</SearchForm>
</SearchPlugin>

如果使用这个Yahoo!Search搜索插件,输入”mozilla”到查询框中,则查询对应的URL如下:

http://search.yahoo.com/search?p=mozilla&ei=UTF-8&fr=moz2

输入的值对应为{searchTerms},直接跳转到URLhttp://search.yahoo.com/search

 

 

2Example: searching MDC

This plugin lets you easily search the Mozilla Developer Center web site.

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>MDC</ShortName>
<Description>Mozilla Developer Center search</Description>
<InputEncoding>UTF-8</InputEncoding>

<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAABGdBTUEAAK%2FINwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz%2F%2Fz8DJQAggJiQOe%2Ffv2fv7Oz8rays%2FN%2BVkfG%2FiYnJfyD%2F1%2BrVq7ffu3dPFpsBAAHEAHIBCJ85c8bN2Nj4vwsDw%2F8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAEEAM0DD4DzMAyPi%2FG%2BQKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo%2BMXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIGTDVkHDBia%2BCuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8vZswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq%2FvLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg%2FkdypqCg4H8lUIACnQ%2FSOBMYI8bAsAJFPcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD%2BaDAXH0WLM4A9MZPXJkJIIAwTAR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg%3D%3D</Image>
<Url type="text/html" method="GET" template="http://developer.mozilla.org/en/docs/Special:Search?search={searchTerms}"/>
<SearchForm>http://developer.mozilla.org/en/docs/Special:Search</SearchForm> 
</SearchPlugin>

注意,在这个例子中没有使用<Param>来定义参数,参数直接简单的包含在模版URL中,实际上在使用GET方法时首选。<Param>应该用于POST方法。


12 使用MozSearch查询时的提示

OscarXie.net

关注质量与体验——电子商务与自动化测试
http://www.cnblogs.com/oscarxie/

原文地址:https://www.cnblogs.com/oscarxie/p/588800.html