製作 OpenSearch 搜尋模組

本文件正在翻譯中,請協助翻譯。

原文 / 參考

OpenSearch

Firefox 2 支援 OpenSearch 搜尋模組格式。以 OpenSearch 描述語法寫作的搜尋模組能同時支援 IE 7 及 Firefox,也因此這是我們建議您使用的格式。

Firefox 也同時支援 OpenSearch 描述語法尚未支援的功能,像是搜尋建議及 SearchForm 元素等。這份文件裡會說明能兼容 OpenSearch 格式及 Firefox 特殊功能的模組寫作方法。

OpenSearch 格式檔能由網站自動提示安裝,或是藉從網頁安裝搜尋模組中描述的方式安裝。

OpenSearch 描述檔

這個描述搜尋引擎的 XML 檔其實很簡單,參考下面的基本樣板,以斜體標示的部分則依需求修改即可。

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>引擎名稱</ShortName>
<Description>引擎描述</Description>
<InputEncoding>編碼方式</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,圖示資料</Image>
<Url type="text/html" method="參數傳送方式" template="搜尋 URL">
  <Param name="參數 1" value="參數 1 之值"/>
  ...
  <Param name="參數 N" value="參數 N 之值"/>
</Url>
<Url type="application/x-suggestions+json" template="搜尋建議URL"/>
<moz:SearchForm>搜尋表單 URL</moz:SearchForm>
</OpenSearchDescription>
引擎名稱
搜尋引擎簡稱
引擎描述
搜尋引擎的簡要描述
編碼方式
此搜尋引擎資料輸入時的編碼方式
圖示資料
代表該搜尋引擎、大小為 16x16 的圖示,以 Base-64 編碼後置於此處。介紹一個方便的編碼工具: The data: URI kitchen
Url
描述搜尋用的 URL。以 method 屬性指定搜尋表單送出方式(GETPOST),並以 template 屬性指定其搜尋 URL。
註: Internet Explorer 7 尚未支援 POST 方法的 OpenSearch 模組。
Firefox 支援兩種 URL 型態:
  • type="text/html",即是搜尋用的 URL。
  • type="application/x-suggestions+json",用以取回「搜尋建議」的 URL。
在這兩種型態的 URL 中都可以使用 {searchTerms} 字串來決定要關鍵字於 URL 中的位置,其他可用的參數請參考OpenSearch 1.1 參數規格
在支援「搜尋建議」的模組中,搜尋的 URL 應可取回一組以 JavaScript Object Notation(JSON)格式編寫的數據,提供這類服務的詳細方法請見讓搜尋模組支援搜尋建議

Image:SearchSuggestionSample.png

參數
隨搜尋要求一併送出的參數,每組皆有參數名稱及其值。指定參數時可放入 {searchTerms} 字串來取得使用者輸入的搜尋關鍵字。
註: Internet Explorer 7 尚未支援此元素。
搜尋表單 URL
搜尋網站的網址,提供使用者不搜尋、直接連到搜尋網站的方法。
註: 由於此元素非 OpenSearch 標準規格而是 Firefox 獨有,故加上「moz:」名稱空間,已確保不支援的瀏覽器能直接跳過此元素。

自動測知搜尋模組

提供搜尋模組的網站能以「自動測知」的方式,讓 Firefox 使用者輕易安裝搜尋模組,增加使用率。

只要在網頁的 <head> 區段內加上下一行就可以支援自動測知功能:

<link rel="search" type="application/opensearchdescription+xml" title="searchTitle" href="pluginURL">

如下所示地修改上面的 斜體字 :

searchTitle
這是搜尋引擎的名稱,例如「Search MDC」或「雅虎搜尋」等。這個名稱應該與引擎名稱一樣。
pluginURL
瀏覽器可以下載的搜尋引擎XML檔案位置。

If your site offers multiple search plugins, you can support autodiscovery for them all. For example:

<link rel="search" type="application/opensearchdescription+xml" title="MySite: By Author" href="http://www.mysite.com/mysiteauthor.xml">
<link rel="search" type="application/opensearchdescription+xml" title="MySite: By Title" href="http://www.mysite.com/mysitetitle.xml">

This way, your site can offer plugins to search both by author and by title as separate entities.

除錯技巧

If there is a mistake in your Search Plugin XML, you could run into errors when adding a discovered plugin in Firefox 2. The error message may not be entirely helpful, however, so the following tips could help you find the problem.

  • Be sure that your Search Plugin XML is well formed. You can check by loading the file directly into Firefox. Ampersands in the template URL need to be escaped with &amp; and tags need to be closed with a trailing slash or matching end tag.
  • The xmlns attribute is important, without it you could get an error message indicating that "Firefox could not download the search plugin from: (URL)".
  • Note that you must include a text/html URL — search plugins including only Atom or RSS URL types (which is valid, but firefox doesn't support) will also generate the "could not download the search plugin" error.

In addition, the search plugin service provides a logging mechanism that may be of use to plugin developers. Use about:config to set the pref 'browser.search.log' to true. Logging information will appear in Firefox's Error Console (Tools->Error Console) when search plugins are added.

Reference Material

Interwiki link

文件標籤與貢獻者

 此頁面的貢獻者: teoli, Mgjbot, Sam268276, BobChao
 最近更新: teoli,