OpenSearch Plugin für Firefox erstellen

OpenSearch

Firefox 2 unterstützt das OpenSearch(engl.) Beschreibungsformat für Such-Plugins. Plugins, die OpenSearch description syntax(engl.) verwenden, sind kompatibel mit IE 7 und Firefox. Daher sind sie das empfohlene Format für das Web.

Firefox unterstützt zudem zusätzliche Suchoptionen, die nicht im OpenSearch description syntax(engl.) genannt werden, wie zum Beispiel Suchvorschläge und das SearchForm Element. Dieser Artikel bezieht sich auf die Erstellung von OpenSearch-kompatiblen Such-Plugins, die die zusätzlichen Firefox-spezifischen Funktionen unterstützen.

OpenSearch Beschreibungsdateien können auch automatisch erkannt und von Webseiten installiert werden.

OpenSearch Beschreibungsdatei

Die XML Datei, die eine Suchmaschine beschreibt, ist sehr einfach aufgebaut. Eine Vorlage findet sich unterhalb. Die fett markierten Abschnitte müssen angepasst werden, je nach dem was auf Ihre Suchmaschine zutrifft.

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>engineName</ShortName>
<Description>engineDescription</Description>
<InputEncoding>inputEncoding</InputEncoding>
<Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,imageData</Image>
<Url type="text/html" method="method" template="searchURL">
  <Param name="paramName1" value="paramValue1"/>
  ...
  <Param name="paramNameN" value="paramValueN"/>
</Url>
<Url type="application/x-suggestions+json" template="suggestionURL"/>
<moz:SearchForm>searchFormURL</moz:SearchForm>
</OpenSearchDescription>
ShortName
Ein kurzer Name für Ihre Suchmaschine.
Einschränkungen: Der Wert muss 16 oder weniger Zeichen enthalten und darf kein HTML oder sonstiges Markup enthalten.
Description
Eine kurze Beschreibung der Suchmaschine.
Einschränkungen: Der Wert muss 1024 oder weniger Zeichen enthalten und darf kein HTML oder sonstiges Markup enthalten.
InputEncoding
Das Encoding, welches für die eingegeben Daten verwendet werden soll. Beispiel: <InputEncoding>UTF-8</InputEncoding>.
Image
URI zu einem Icon, welches die Suchmaschine repräsentiert. Nach Möglichkeit sollten Suchmaschinen ein 16x16 großes Bild des Typs "image/x-icon" und ein 64x64 großes Bild des Typs "image/jpeg" oder "image/png" bereitstellten. Der Link kann auch das data: URI scheme verwenden. Ein hilfreiches Tool zum Erstellen der data URIs lässt sich hier finden: The data: URI kitchen.
<Image height="16" width="16" type="image/x-icon">http://example.com/favicon.ico</Image>
  Oder
<Image height="16" width="16">data:image/x-icon;base64,AAABAAEAEBAAA ... DAAA=</Image>
Firefox speichert das Icon als eine base64 data: URI im Cache (Such-Plugins werden im "searchplugins" Ordner im Profil gespeichert). http: URIs werden auf data: URIs umgewandelt, wenn diese vorhanden sind.
Url
Gibt die URL oder die URLs an, die zur Suche verwendet werden sollen. Das method Attribut gibt an, ob eine GET oder POST Anfrage verwendet wird. Das template Attribut gibt die Basis-URL für die Suchanfrage an.
Hinweis: Der Internet Explorer 7 unterstützt keine POST Anfragen.
Es gibt zwei URL-Typen, die Firefox unterstützt:
  • type="text/html" wird benutzt, um die URL für die Suchanfrage selbst festzulegen.
  • type="application/x-suggestions+json" wird benutzt, um die URL anzugeben, die die Suchvorschläge enthält.
Für jeden URL-Typ können Sie {searchTerms} einsetzen, um dort den Suchausdruck des Benutzers einzufügen. Andere unterstützte dynamische Suchparameter sind unter OpenSearch 1.1 parameters beschrieben.
Für Suchvorschläge wird die festgelegte Vorlage verwendet, um eine Liste im JavaScript Object Notation (JSON) Format zu erhalten. Für weitere Details zur Implementierung von Suchvorschlägen, siehe Suchvorschläge in Such-Plugins unterstützen.

Image:SearchSuggestionSample.png

Param
Die Parameter, die durch die Suchanfrage laufen müssen, als Schlüssel/Wert Paare. Wenn Werte festgelegt werden, können Sie {searchTerms} verwenden, um den Suchausdruck vom Benutzer in der Suchleiste einzufügen.
Hinweis: Der Internet Explorer 7 unterstützt dieses Element nicht.
SearchForm
Die URL zur der Suchseite auf der Seite, für die das Plugin erstellt wurde. Das bietet einen Weg für den Benutzer an, die Seite direkt zu besuchen, auf der er suchen möchte.
Hinweis: Da dieses Element Firefox-spezifisch ist und nicht Teil der OpenSearch Spezifikation ist, verwenden wir das "moz:" XML Namespace Präfix im Beispiel oben, um sicher zu stellen, dass andere Browser dieses Element ignorieren.

Automatische Erkennung von Such-Plugins

Eine Webseite, die ein Such-Plugin anbietet, kann dieses bemerkbar machen, sodass Firefox Benutzer dieses einfach herunterladen und installieren können.

Um die automatisch Erkennung zu unterstützen, müssen Sie einfach einen Link im <head> Ihrer Webseite hinzufügen:

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

Ersetzen Sie die kursiven Einträge, wie unten erklärt:

searchTitle
Der Name der Suche, etwa "MDC Suche" oder "Yahoo! Suche". Dieser Wert sollte mit dem ShortName Ihres Plugins übereinstimmen.
pluginURL
Die URL zum XML Such-Plugin, von welchem der Browser das Plugin herunterladen kann.

Wenn Ihre Seite mehrere Such-Plugins anbietet, können Sie diese Zeile für Zeile angeben. Zum Beispiel:

<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">

Dadurch bietet Ihre Seite sowohl die Such nach Autor und nach Titel als separate Möglichkeiten an.

Automatische Aktualisierungen für OpenSearch Plugins bereitstellen

Hinweis zu Firefox 3.5

Dieser Abschnitt beschreibt Funktionen, die in Firefox 3.5 eingeführt wurden.

Ab Firefox 3.5 können OpenSearch Plugins automatsch aktualisiert werden. Um dies zu unterstützen, muss ein zusätzliches Url Element des Typs "application/opensearchdescription+xml" eingefügt werden. Das rel Attribut muss "self" lauten und das template Attribut muss die URL des OpenSearch Dokuments sein, welches automatisch aktualisiert werden muss.

Zum Beispiel:

<Url type="application/opensearchdescription+xml"
     rel="self"
     template="http://www.foo.com/mysearchdescription.xml" />

Tipps zur Problemlösung

Falls sich ein Fehler in Ihr Such-Plugin XML eingeschlichen hat, können Fehler beim Hinzufügen von Such-Plugin auftreten. Die Fehlermeldungen sind meist nicht sehr hilfreich, die folgenden Tipps können Ihnen aber vielleicht helfen das Problem zu finden.

  • Ihr Server sollte OpenSearch Plugins mit dem MIME type application/opensearchdescription+xml ausliefern.
  • Stellen Sie sicher, dass die XML Datei des Plugins wohlgeformt ist. Das können Sie überprüfen, indem Sie die Datei direkt in Firefox aufrufen. Ampersands in der template URL müssen mit &amp; maskiert werden und Tags müssen mit einem Slash oder einem schließenden Tag geschlossen werden.
  • Das xmlns Attribut ist wichtig, ohne diesem taucht die Fehlermeldung auf: "Firefox could not download the search plugin from: (URL)".
  • Achten Sie darauf, dass Sie eine text/html URL einfügen müssen — Such-Plugins mit Atom oder RSS URL Typen (was gültig wäre, Firefox aber nicht unterstützt) werden ebenfalls zum Fehler "could not download the search plugin" führen.
  • Favicons aus einer entfernten Quelle dürfen nicht größer als 10KB sein (siehe Bug 361923).

Zusätzlich bietet das Such-Plugin einen Log-Mechanismus, der von Plugin Entwicklern verwendet werden kann. Verwenden Sie about:config um die Einstellung 'browser.search.log' auf true zu setzen. Logging Informationen werden in Firefox's Fehlerkonsole (Extras->Fehlerkonsole) erscheinen, wenn Such-Plugins hinzugefügt werden.

Referenzmaterial

Anhänge

Datei Größe Datum Angehängt von
Di_types.gif
4412 Bytes 2006-10-01 13:46:48 Prometeo
SearchSuggestionSample.png
11481 Bytes 2006-06-01 16:49:35 Sheppy

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter:
Mitwirkende an dieser Seite: Lexhawkins, fscholz
Zuletzt aktualisiert von: fscholz,