OpenSearch基于XML的开放网站搜索协议现在很多流行的浏览器,默认都支持地址栏的右边有个搜索框,这样的设计有利于用户快速的搜索内容,默认是使用google搜索服务,不过天朝的浏览器就五花八门了,什么搜索引擎都有。 其实这是 OpenSearch 的一个应用,只要编写相应的微格式的 xml 文件,就可以制定相应的搜索框。参考 OpenSearch 的定义文档,可以基本获得基本的 xml 格式。比如某个典型的的搜索 xml 文件可以这样指定。 概述OpenSearch的是Amazon.com子公司A9公司所提出的一种分享搜寻结果的简单的格式,它于2005年3月首次在O’Reilly新兴技术会议上提出OpenSearch1.0版本。使用版本为1.1版。 通俗的,从普通用户角度来说: 例如用户访问某个网站,该网站具备搜索功能,并提供遵循OpenSearch规范的代码,那么支持OpenSearch功能的浏览器(目前有IE7、IE8、Firefox、Chrome)就能够自动发现并提示添加新的搜索插件/扩展到浏览器的搜索栏中。 例如,如果用户使用的是IE8浏览器,那么在浏览器的右上角,就会发现一个小文本输入框,输入框前方的下拉菜单可以用来选择需要的搜索引擎(常用的比如百度、谷歌等)。 而一旦用户根据提示,选择安装某网站的搜索插件/扩展后,新的搜索功能也将会出现在搜索栏的下拉菜单中。 如何搜索您的网站是存在一个XML文件里并且是OpenSearch的标准 。 其次,把这个XML通过 使用这种技术,您可以为您的网站创建一个自定义搜索,而且您的访问者可以添加到他们的浏览器搜索栏中。 加入后,用户可以直接从他们的浏览器搜索栏中搜索您的网站,就像他们可以从同一界面上搜索Google或其他搜索引擎。 本文说明如何创建一个XML文件符合OpenSearch的标准,以及如何把它连结在您的网站的网页上。 技术分析既然是XML文档,那么下面就是一份简单的示例,该代码是Github的OpenSearch.xml: <OpenSearchDescription xmlns="http:///-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/"> <ShortName>GitHub</ShortName> <Description>Search GitHub</Description> <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16" type="image/x-icon">https://github.com/favicon.ico</Image> <Url type="text/html" method="get" template="https://github.com/search?q={searchTerms}&ref=opensearch"/> <moz:SearchForm>https://github.com/search</moz:SearchForm> </OpenSearchDescription> 代码讲解上面的 xml 文件很容易理解,除了固定的 xml 根以外,其他的定义从字面上就可以理解:
添加方法编写 OpenSearch 的 xml 格式就完成了,详细信息可以参阅其 OpenSearch 定义文档。下面要在页面中加入这个搜索,基本上可以分为两种方式。分别是页面的在 head 中加入 link 标记(类似 RSS),以及使用 Javascript 方式添加(比如定义某个按钮触发)。 link方法 加入 link 标记非常简单,格式如下 <link rel="search" type="application/opensearchdescription+xml" href="http://.i/search.xml" title="ShortName" /> 与 RSS 相似,rel 和 type 是固定的,我们主要指定 href (上述 xml 的 url 路径,保险起见使用绝对路径,即 http:// 开头)以及 title (也就是搜索的短标题)即可。就这样,在 Explorer 以及 Firefox 中打开这个页面就可以看见相应的菜单了 JavaScrip方法 使用 Javascript 添加比较麻烦(或许现在的情况会很好多)。我们主要会使用浏览器的扩展功能,在 Explorer 有个 window.external.AddSearchProvider 参数(详细文档)。典型的调用方法如下 window.external.AddSearchProvider('http://.i/search.xml'); 参数中的链接就是上述 link 中的内容。在 Firefox 下可以使用 window.sidebar.addSearchEngine( "http://.i/search.xml", /* engine URL */ "favicon.ico", /* icon URL */ "ShortName", /* engine name */ "Description" ); /* category name */ 参数和例子如示例代码中所述(官方文档)。值得注意的是在 Firefox2 版本以后已经“兼容” Explorer 的 window.external.AddSearchProvider 调用方法(详细信息)。那么我们对应的 Javascript 代码就可以这样编写(为了兼容 Firefox2 之前的版本,加入 else if 判断,如果觉得没有必要,可以不加) function addEngine(){ if (window.external || window.external.AddSearchProvider) { window.external.AddSearchProvider('http://.i/search.xml'); } else if (window.sidebar && window.sidebar.addSearchEngine) { window.sidebar.addSearchEngine( "http://.i/search.xml", "favicon.ico", /* icon URL */ "ShortName", /* engine name */ "Description" ); /* category name */ }} 这样,就可以将这个函数注册到某个链接或者按钮的点击事件中,就会跳出个确认框,如图用户点击确认以后,就加入到浏览器搜索框中了。 支持的网站和软件支持OpenSearch索引功能的一些网站包括:
支持的主流浏览器
浏览器搜索栏插件/扩展访问者如果您正在使用的浏览器是:IE7版本或者以上、Mozilla Firefox2或者3、Google Chrome,它们都默认提供一个专用的搜索框,用来直接搜索内容。opensearch 支持网站提供各种类型的搜索引擎,帮助您安装到浏览器的专用搜索框中。这样,以后无须直接打开对应的网站,您就可以快速搜索到感兴趣的内容。举例来说,您访问某个网站,那么支持OpenSource功能的浏览器(目前有IE7、IE8、Firefox、Chrome)就能够自动发现并提示添加新的搜索插件/扩展到浏览器的搜索栏中。例如,您使用的是IE8浏览器。 网站主如果您拥有自己的网站,并且网站具备搜索功能,那么,可以制作对应的符合Open Search协议的浏览器搜索栏扩展功能,让对您网站感兴趣的访问者直接从搜索栏就可以获得信息。 参考
交流:问说网设计交流群:12043441(快速加入),与众多设计师交流设计,分享素材。
设计微博:@问说网 欢迎关注获取网页设计资源、下载顶尖设计素材。 设计导航:全球顶尖设计网站推荐,设计师必备导航:http://dao.
本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处。
转载请注明:文章转载自:问说网 ? OpenSearch基于XML的开放网站搜索协议 本文标题:OpenSearch基于XML的开放网站搜索协议 本文地址:http://www./opensearch.html |
|