現(xiàn)在很多流行的瀏覽器,默認(rèn)都支持地址欄的右邊有個(gè)搜索框,這樣的設(shè)計(jì)有利于用戶快速的搜索內(nèi)容,默認(rèn)是使用google搜索服務(wù),不過(guò)天朝的瀏覽器就五花八門了,什么搜索引擎都有。
其實(shí)這是 OpenSearch 的一個(gè)應(yīng)用,只要編寫相應(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版。
通俗的,從普通用戶角度來(lái)說(shuō):
例如用戶訪問(wèn)某個(gè)網(wǎng)站,該網(wǎng)站具備搜索功能,并提供遵循OpenSearch規(guī)范的代碼,那么支持OpenSearch功能的瀏覽器(目前有IE7、IE8、Firefox、Chrome)就能夠自動(dòng)發(fā)現(xiàn)并提示添加新的搜索插件/擴(kuò)展到瀏覽器的搜索欄中。
例如,如果用戶使用的是IE8瀏覽器,那么在瀏覽器的右上角,就會(huì)發(fā)現(xiàn)一個(gè)小文本輸入框,輸入框前方的下拉菜單可以用來(lái)選擇需要的搜索引擎(常用的比如百度、谷歌等)。
而一旦用戶根據(jù)提示,選擇安裝某網(wǎng)站的搜索插件/擴(kuò)展后,新的搜索功能也將會(huì)出現(xiàn)在搜索欄的下拉菜單中。
如何搜索您的網(wǎng)站是存在一個(gè)XML文件里并且是OpenSearch的標(biāo)準(zhǔn) 。 其次,把這個(gè)XML通過(guò)<head>
元素 (可以對(duì)每個(gè)網(wǎng)頁(yè) )中的<link>
標(biāo)記指向。 當(dāng)用戶在他們的瀏覽器訪問(wèn)您的網(wǎng)站可以偵測(cè)到這方面的資料,并允許用戶將您的網(wǎng)站添加到他們的瀏覽器搜索欄中。
使用這種技術(shù),您可以為您的網(wǎng)站創(chuàng)建一個(gè)自定義搜索,而且您的訪問(wèn)者可以添加到他們的瀏覽器搜索欄中。 加入后,用戶可以直接從他們的瀏覽器搜索欄中搜索您的網(wǎng)站,就像他們可以從同一界面上搜索Google或其他搜索引擎。 本文說(shuō)明如何創(chuàng)建一個(gè)XML文件符合OpenSearch的標(biāo)準(zhǔn),以及如何把它連結(jié)在您的網(wǎng)站的網(wǎng)頁(yè)上。
既然是XML文檔,那么下面就是一份簡(jiǎn)單的示例,該代碼是Github的OpenSearch.xml:
<OpenSearchDescription xmlns="http://a9.com/-/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 格式就完成了,詳細(xì)信息可以參閱其 OpenSearch 定義文檔。下面要在頁(yè)面中加入這個(gè)搜索,基本上可以分為兩種方式。分別是頁(yè)面的在 head 中加入 link 標(biāo)記(類似 RSS),以及使用 Javascript 方式添加(比如定義某個(gè)按鈕觸發(fā))。
link方法
加入 link 標(biāo)記非常簡(jiǎn)單,格式如下
<link rel="search" type="application/opensearchdescription+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://who.am.i/search.xml');
參數(shù)中的鏈接就是上述 link 中的內(nèi)容。在 Firefox 下可以使用
window.sidebar.addSearchEngine( "http://who.am.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 代碼就可以這樣編寫(為了兼容 Firefox2 之前的版本,加入 else if 判斷,如果覺(jué)得沒(méi)有必要,可以不加)
function addEngine(){ if (window.external || window.external.AddSearchProvider) { window.external.AddSearchProvider('http://who.am.i/search.xml'); } else if (window.sidebar && window.sidebar.addSearchEngine) { window.sidebar.addSearchEngine( "http://who.am.i/search.xml", "favicon.ico", /* icon URL */ "ShortName", /* engine name */ "Description" ); /* category name */ }}
這樣,就可以將這個(gè)函數(shù)注冊(cè)到某個(gè)鏈接或者按鈕的點(diǎn)擊事件中,就會(huì)跳出個(gè)確認(rèn)框,如圖用戶點(diǎn)擊確認(rèn)以后,就加入到瀏覽器搜索框中了。
支持OpenSearch索引功能的一些網(wǎng)站包括:
如果您正在使用的瀏覽器是:IE7版本或者以上、Mozilla Firefox2或者3、Google Chrome,它們都默認(rèn)提供一個(gè)專用的搜索框,用來(lái)直接搜索內(nèi)容。opensearch 支持網(wǎng)站提供各種類型的搜索引擎,幫助您安裝到瀏覽器的專用搜索框中。這樣,以后無(wú)須直接打開(kāi)對(duì)應(yīng)的網(wǎng)站,您就可以快速搜索到感興趣的內(nèi)容。舉例來(lái)說(shuō),您訪問(wèn)某個(gè)網(wǎng)站,那么支持OpenSource功能的瀏覽器(目前有IE7、IE8、Firefox、Chrome)就能夠自動(dòng)發(fā)現(xiàn)并提示添加新的搜索插件/擴(kuò)展到瀏覽器的搜索欄中。例如,您使用的是IE8瀏覽器。
如果您擁有自己的網(wǎng)站,并且網(wǎng)站具備搜索功能,那么,可以制作對(duì)應(yīng)的符合Open Search協(xié)議的瀏覽器搜索欄擴(kuò)展功能,讓對(duì)您網(wǎng)站感興趣的訪問(wèn)者直接從搜索欄就可以獲得信息。
聯(lián)系客服