posts - 15,  comments - 8,  trackbacks - 0
Firefox提供一个搜索工具栏,执行搜索的引擎可以通过下拉列表来选择,这个列表的内容可以按照自己的喜好定制。可以说这是一个相当方便的功能。每一个搜索引擎对应的是一个xml文件,是按照OpenSearch标准定制的,所以只要符合这个标准的xml文件都可以被Firefox使用。

Mozilla扩展下载网站提供了一个专门的类别来显示这类搜索引擎,但是内容比较少,地址如下:
https://addons.mozilla.org/zh-CN/firefox/browse/type:4/cat:all?sort=name

Firefox有一款扩展,叫做Add To Search Bar。 这个扩展的唯一也是很强大的功能,就是你点击任何一个搜索引擎的搜索框,然后在菜单命令中选择Add to search bar,Firefox的搜索列表里面就多出一项来。这是一个添加搜索引擎的很方便的方式。但是,有些网站的搜索条弄得太复杂,这个扩展也无法识别。

有一些网站的内部搜索支持OpenSearch,会在代码中注明,这样当浏览器打开这些页面的时候,在搜索框下拉列表里面,会自动把这个搜索列出来,点击就直接添加到浏览器中,也很方便。下面这段代码是从优酷的代码中摘录的:
<link rel="search" type="application/opensearchdescription+xml" title="优酷视频搜索"
      href
="http://desktop.youku.com/opensearch/youku.xml">

在Mozdev.org上有一个叫做Mycroft的项目,就是一个searchplugin的大集合,基本上你能想到的这上面都有了。还提供了一个搜索,因为太多了,方便大家查找。

以上都是现成的,我们现在摘录一个来分析一下格式,由于材料的问题,可能分析的比较浅显,但应该足够大家自己定制了。

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
<os:ShortName>优酷视频</os:ShortName>
<os:InputEncoding>UTF-8</os:InputEncoding>
<os:OutputEncoding>UTF-8</os:OutputEncoding>
<os:Image width="16" height="16">data:image/gif;base64,R0lGODlhEAAQAPcAAAkJChITExMUFBQWGBgZGSEjIyIjJCYnJy0uLigyOTAxMTU1NTw8PDI7QTxESjlddUFBQUNDQ0lJSktLS0xMTE5OTkZPVUpQVU5SVVFRUVJSUlNTU1VWVlhYWFlZWV1mbWJiYmdnZ2pqamx4f3R1dXx8fDNggDVigTtukk17mm19hyynK02EqlSDo1iFoVSMs3iYrnqar3+ZqnS+m3Cgv2/QkXbUgIubp4y/s4SvyIeyzI681o6/1Im52Iq62Iu62Yy62Y682Y+92pS9z5K61ZC92pO/25O/3JS/3KO+0YLTnoPHu4/fr6DkuY/EzZfA2pXA3JfB3Z/D1pvB2pnC3ZrD3p7D25zE3p7F35/G3Z/L1a3BzqHF3aLH3qDG36bJ36zI26zK3qDH4KLI4KTJ4KXJ4abK4abK4qrL4KjL4qrM4qrM46zN4qzN46zO467P5K/Q5LPR5LHQ5bPS5rXS5bTS5rXT57jV47jU57vW57zU477X57rW6L/Y6L3i28La6sLa68vd6cne68re7MDp18/i787r5NDj79fn8Nfn8dnn8Nno8tvq8d7r9ODs8+Ds9OLt9ePu9OXv9ejx9ujx9+ny9+71+PD2+fL3+vP4+/X4+/f6/Pj6/P7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAQABAAAAj/ADsJ7GRJ0R0tTnioOTRwIKdKkhj5YVJjyQ4gUSgN1BRJE6dJhGysmDGEChQoGjUJcoRJUyVDTZTgkHJmTBUqlwb1QSRpUiAaKVzkQANnzZkrfL7QEYRIDwoHEjhYiOFmTpsyXp6w2SOIxYUKGUCUwJDEjpw1YoJ0iRPGhIcOEzSEIKECTx03ZX5QUUPkwQYNERhQEPEhT503Zt5EKWPlBAQICw4omDCCz11AkIyIWfOiAQIDBAQU2GJnjhqNhaqcmdIiQQAAA27gmeNm0cBEWM5w0QFDBhg6ctw0atgJEx8yadaswfsnE3GBjXxkQXKkCJBHzwVqStNDyJEjcjY1AgwIADs=
</os:Image>
<os:Url type="text/html" method="GET" template="http://so.youku.com/search_video/q_{searchTerms}/orderby_2" />
</SearchPlugin>

下面简要说明一下:
  • ShortName对应的是在下拉列表里面显示的名称。
  • InputEncoding和OutputEncoding根据网站的实际情况而定,中文的网站要么是UTF-8,要么就应该是GB2312吧。
  • Image对应的是下拉列表里面显示的图标,尺寸是固定的,16*16,下面那堆乱七八糟的是base64编码的,具体下面补充。
  • URL 对应的实际搜索方式,大部分搜索引擎都是通过get方式,而get方式就是在网址后面以明文方式加入一大堆查询参数,只要研究一下搜索结果,很容易就会发 现关键字对应的条件。而{searchTerms}对应的就是在搜索框输入的内容,替换一下就OK了。上面的这段代码就是我改版的,我在后面增加了 orderby_2,这样默认就按照发布时间排序了(默认是按照关联程度排序的)。
修改过的xml文件,名称无所谓,扩展名是xml就可以。然后放到searchplugins目录,位置通常类似下面这个目录,复制到里面,重新启动Firefox就OK啦。
C:\Documents and Settings\John\Application Data\Mozilla\Firefox\Profiles\hb24feb3.default\searchplugins

补充一下,关于base64编码:

这个编码是做什么的呢?深的就不说了,总之就是把二进制内容转换成一个大字符串,方便网络传输和加密。下面几个在线工具可以把图片进行base64编码:
http://www.greywyvern.com/code/php/binary2base64
http://www.motobit.com/util/base64-decoder-encoder.asp

至于把base64编码转换成图片,只需要把生成的base64编码前面加上“data:image/jpeg;base64,”(不包括引号),然后直接在浏览器地址栏输入就可以,文件类型需要根据实际情况改一下,有可能是jpeg、png、gif等。

posted on 2009-06-18 12:31 lvq810 阅读(280) 评论(0)  编辑  收藏 所属分类: Other