OpenSearch基于XML的開放網(wǎng)站搜索協(xié)議現(xiàn)在很多流行的瀏覽器,默認都支持地址欄的右邊有個搜索框,這樣的設計有利于用戶快速的搜索內(nèi)容,默認是使用google搜索服務,不過天朝的瀏覽器就五花八門了,什么搜索引擎都有。 其實這是 OpenSearch 的一個應用,只要編寫相應的微格式的 xml 文件,就可以制定相應的搜索框。參考 OpenSearch 的定義文檔,可以基本獲得基本的 xml 格式。比如某個典型的的搜索 xml 文件可以這樣指定。 概述OpenSearch的是Amazon.com子公司A9公司所提出的一種分享搜尋結(jié)果的簡單的格式,它于2005年3月首次在O’Reilly新興技術(shù)會議上提出OpenSearch1.0版本。使用版本為1.1版。 通俗的,從普通用戶角度來說: 例如用戶訪問某個網(wǎng)站,該網(wǎng)站具備搜索功能,并提供遵循OpenSearch規(guī)范的代碼,那么支持OpenSearch功能的瀏覽器(目前有IE7、IE8、Firefox、Chrome)就能夠自動發(fā)現(xiàn)并提示添加新的搜索插件/擴展到瀏覽器的搜索欄中。 例如,如果用戶使用的是IE8瀏覽器,那么在瀏覽器的右上角,就會發(fā)現(xiàn)一個小文本輸入框,輸入框前方的下拉菜單可以用來選擇需要的搜索引擎(常用的比如百度、谷歌等)。 而一旦用戶根據(jù)提示,選擇安裝某網(wǎng)站的搜索插件/擴展后,新的搜索功能也將會出現(xiàn)在搜索欄的下拉菜單中。 如何搜索您的網(wǎng)站是存在一個XML文件里并且是OpenSearch的標準 。 其次,把這個XML通過 使用這種技術(shù),您可以為您的網(wǎng)站創(chuàng)建一個自定義搜索,而且您的訪問者可以添加到他們的瀏覽器搜索欄中。 加入后,用戶可以直接從他們的瀏覽器搜索欄中搜索您的網(wǎng)站,就像他們可以從同一界面上搜索Google或其他搜索引擎。 本文說明如何創(chuàng)建一個XML文件符合OpenSearch的標準,以及如何把它連結(jié)在您的網(wǎng)站的網(wǎng)頁上。 技術(shù)分析既然是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 方式添加(比如定義某個按鈕觸發(fā))。 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 添加比較麻煩(或許現(xiàn)在的情況會很好多)。我們主要會使用瀏覽器的擴展功能,在 Explorer 有個 window.external.AddSearchProvider 參數(shù)(詳細文檔)。典型的調(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)用方法(詳細信息)。那么我們對應的 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 */ }} 這樣,就可以將這個函數(shù)注冊到某個鏈接或者按鈕的點擊事件中,就會跳出個確認框,如圖用戶點擊確認以后,就加入到瀏覽器搜索框中了。 支持的網(wǎng)站和軟件支持OpenSearch索引功能的一些網(wǎng)站包括:
支持的主流瀏覽器
瀏覽器搜索欄插件/擴展訪問者如果您正在使用的瀏覽器是:IE7版本或者以上、Mozilla Firefox2或者3、Google Chrome,它們都默認提供一個專用的搜索框,用來直接搜索內(nèi)容。opensearch 支持網(wǎng)站提供各種類型的搜索引擎,幫助您安裝到瀏覽器的專用搜索框中。這樣,以后無須直接打開對應的網(wǎng)站,您就可以快速搜索到感興趣的內(nèi)容。舉例來說,您訪問某個網(wǎng)站,那么支持OpenSource功能的瀏覽器(目前有IE7、IE8、Firefox、Chrome)就能夠自動發(fā)現(xiàn)并提示添加新的搜索插件/擴展到瀏覽器的搜索欄中。例如,您使用的是IE8瀏覽器。 網(wǎng)站主如果您擁有自己的網(wǎng)站,并且網(wǎng)站具備搜索功能,那么,可以制作對應的符合Open Search協(xié)議的瀏覽器搜索欄擴展功能,讓對您網(wǎng)站感興趣的訪問者直接從搜索欄就可以獲得信息。 參考
交流:問說網(wǎng)設計交流群:12043441(快速加入),與眾多設計師交流設計,分享素材。
設計微博:@問說網(wǎng) 歡迎關(guān)注獲取網(wǎng)頁設計資源、下載頂尖設計素材。 設計導航:全球頂尖設計網(wǎng)站推薦,設計師必備導航:http://dao.
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯,歡迎任何形式的轉(zhuǎn)載,但請務必注明出處。
轉(zhuǎn)載請注明:文章轉(zhuǎn)載自:問說網(wǎng) ? OpenSearch基于XML的開放網(wǎng)站搜索協(xié)議 本文標題:OpenSearch基于XML的開放網(wǎng)站搜索協(xié)議 本文地址:http://www./opensearch.html |
|