OpenSearch基于XML的開(kāi)放網(wǎng)站搜索協(xié)議現(xiàn)在很多流行的瀏覽器,默認(rèn)都支持地址欄的右邊有個(gè)搜索框,這樣的設(shè)計(jì)有利于用戶(hù)快速的搜索內(nèi)容,默認(rèn)是使用google搜索服務(wù),不過(guò)天朝的瀏覽器就五花八門(mén)了,什么搜索引擎都有。 其實(shí)這是 OpenSearch 的一個(gè)應(yīng)用,只要編寫(xiě)相應(yīng)的微格式的 xml 文件,就可以制定相應(yīng)的搜索框。參考 OpenSearch 的定義文檔,可以基本獲得基本的 xml 格式。比如某個(gè)典型的的搜索 xml 文件可以這樣指定。 概述OpenSearch的是Amazon.com子公司A9公司所提出的一種分享搜尋結(jié)果的簡(jiǎn)單的格式,它于2005年3月首次在O’Reilly新興技術(shù)會(huì)議上提出OpenSearch1.0版本。使用版本為1.1版。 通俗的,從普通用戶(hù)角度來(lái)說(shuō): 例如用戶(hù)訪(fǎng)問(wèn)某個(gè)網(wǎng)站,該網(wǎng)站具備搜索功能,并提供遵循OpenSearch規(guī)范的代碼,那么支持OpenSearch功能的瀏覽器(目前有IE7、IE8、Firefox、Chrome)就能夠自動(dòng)發(fā)現(xiàn)并提示添加新的搜索插件/擴(kuò)展到瀏覽器的搜索欄中。 例如,如果用戶(hù)使用的是IE8瀏覽器,那么在瀏覽器的右上角,就會(huì)發(fā)現(xiàn)一個(gè)小文本輸入框,輸入框前方的下拉菜單可以用來(lái)選擇需要的搜索引擎(常用的比如百度、谷歌等)。 而一旦用戶(hù)根據(jù)提示,選擇安裝某網(wǎng)站的搜索插件/擴(kuò)展后,新的搜索功能也將會(huì)出現(xiàn)在搜索欄的下拉菜單中。 如何搜索您的網(wǎng)站是存在一個(gè)XML文件里并且是OpenSearch的標(biāo)準(zhǔn) 。 其次,把這個(gè)XML通過(guò) 使用這種技術(shù),您可以為您的網(wǎng)站創(chuàng)建一個(gè)自定義搜索,而且您的訪(fǎng)問(wèn)者可以添加到他們的瀏覽器搜索欄中。 加入后,用戶(hù)可以直接從他們的瀏覽器搜索欄中搜索您的網(wǎng)站,就像他們可以從同一界面上搜索Google或其他搜索引擎。 本文說(shuō)明如何創(chuàng)建一個(gè)XML文件符合OpenSearch的標(biāo)準(zhǔn),以及如何把它連結(jié)在您的網(wǎng)站的網(wǎng)頁(yè)上。 技術(shù)分析既然是XML文檔,那么下面就是一份簡(jiǎn)單的示例,該代碼是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 根以外,其他的定義從字面上就可以理解:
添加方法編寫(xiě) OpenSearch 的 xml 格式就完成了,詳細(xì)信息可以參閱其 OpenSearch 定義文檔。下面要在頁(yè)面中加入這個(gè)搜索,基本上可以分為兩種方式。分別是頁(yè)面的在 head 中加入 link 標(biāo)記(類(lèi)似 RSS),以及使用 Javascript 方式添加(比如定義某個(gè)按鈕觸發(fā))。 link方法 加入 link 標(biāo)記非常簡(jiǎn)單,格式如下 <link rel="search" type="application/opensearchdescription+xml" href="http://.i/search.xml" title="ShortName" /> 與 RSS 相似,rel 和 type 是固定的,我們主要指定 href (上述 xml 的 url 路徑,保險(xiǎn)起見(jiàn)使用絕對(duì)路徑,即 http:// 開(kāi)頭)以及 title (也就是搜索的短標(biāo)題)即可。就這樣,在 Explorer 以及 Firefox 中打開(kāi)這個(gè)頁(yè)面就可以看見(jiàn)相應(yīng)的菜單了 JavaScrip方法 使用 Javascript 添加比較麻煩(或許現(xiàn)在的情況會(huì)很好多)。我們主要會(huì)使用瀏覽器的擴(kuò)展功能,在 Explorer 有個(gè) window.external.AddSearchProvider 參數(shù)(詳細(xì)文檔)。典型的調(diào)用方法如下 window.external.AddSearchProvider('http://.i/search.xml'); 參數(shù)中的鏈接就是上述 link 中的內(nèi)容。在 Firefox 下可以使用 window.sidebar.addSearchEngine( "http://.i/search.xml", /* engine URL */ "favicon.ico", /* icon URL */ "ShortName", /* engine name */ "Description" ); /* category name */ 參數(shù)和例子如示例代碼中所述(官方文檔)。值得注意的是在 Firefox2 版本以后已經(jīng)“兼容” Explorer 的 window.external.AddSearchProvider 調(diào)用方法(詳細(xì)信息)。那么我們對(duì)應(yīng)的 Javascript 代碼就可以這樣編寫(xiě)(為了兼容 Firefox2 之前的版本,加入 else if 判斷,如果覺(jué)得沒(méi)有必要,可以不加) 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 */ }} 這樣,就可以將這個(gè)函數(shù)注冊(cè)到某個(gè)鏈接或者按鈕的點(diǎn)擊事件中,就會(huì)跳出個(gè)確認(rèn)框,如圖用戶(hù)點(diǎn)擊確認(rèn)以后,就加入到瀏覽器搜索框中了。 支持的網(wǎng)站和軟件支持OpenSearch索引功能的一些網(wǎng)站包括:
支持的主流瀏覽器
瀏覽器搜索欄插件/擴(kuò)展訪(fǎng)問(wèn)者如果您正在使用的瀏覽器是:IE7版本或者以上、Mozilla Firefox2或者3、Google Chrome,它們都默認(rèn)提供一個(gè)專(zhuān)用的搜索框,用來(lái)直接搜索內(nèi)容。opensearch 支持網(wǎng)站提供各種類(lèi)型的搜索引擎,幫助您安裝到瀏覽器的專(zhuān)用搜索框中。這樣,以后無(wú)須直接打開(kāi)對(duì)應(yīng)的網(wǎng)站,您就可以快速搜索到感興趣的內(nèi)容。舉例來(lái)說(shuō),您訪(fǎng)問(wèn)某個(gè)網(wǎng)站,那么支持OpenSource功能的瀏覽器(目前有IE7、IE8、Firefox、Chrome)就能夠自動(dòng)發(fā)現(xiàn)并提示添加新的搜索插件/擴(kuò)展到瀏覽器的搜索欄中。例如,您使用的是IE8瀏覽器。 網(wǎng)站主如果您擁有自己的網(wǎng)站,并且網(wǎng)站具備搜索功能,那么,可以制作對(duì)應(yīng)的符合Open Search協(xié)議的瀏覽器搜索欄擴(kuò)展功能,讓對(duì)您網(wǎng)站感興趣的訪(fǎng)問(wèn)者直接從搜索欄就可以獲得信息。 參考
交流:?jiǎn)栒f(shuō)網(wǎng)設(shè)計(jì)交流群:12043441(快速加入),與眾多設(shè)計(jì)師交流設(shè)計(jì),分享素材。
設(shè)計(jì)微博:@問(wèn)說(shuō)網(wǎng) 歡迎關(guān)注獲取網(wǎng)頁(yè)設(shè)計(jì)資源、下載頂尖設(shè)計(jì)素材。 設(shè)計(jì)導(dǎo)航:全球頂尖設(shè)計(jì)網(wǎng)站推薦,設(shè)計(jì)師必備導(dǎo)航:http://dao.
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯,歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處。
轉(zhuǎn)載請(qǐng)注明:文章轉(zhuǎn)載自:問(wèn)說(shuō)網(wǎng) ? OpenSearch基于XML的開(kāi)放網(wǎng)站搜索協(xié)議 本文標(biāo)題:OpenSearch基于XML的開(kāi)放網(wǎng)站搜索協(xié)議 本文地址:http://www./opensearch.html |
|
來(lái)自: 看見(jiàn)就非常 > 《tip》