Entwicklerhandbuch für OpenService-Schnellinfos

Neu für Windows Internet Explorer 8

In Internet Explorer 8 sind Schnellinfos die Kontextmenüoptionen, die schnell auf Anwendungen oder Webdienste auf beliebigen Webseiten zugreifen können. Benutzer können Schnellinfos über den Internet Explorer 8-Dienstkatalog oder über eine beliebige Website installieren, auf der diese angeboten werden. Schnellinfos gestalten es einfacher, Informationen von einer Webseite zu einer anderen zu kopieren. In diesem Artikel wird beschrieben, wie XML-basierte Schnellinfos definiert und bereitgestellt werden.

In diesem Artikel sind die folgenden Abschnitte enthalten:

Schwerpunkte

  • Schnellinfos werden in Internet Explorer im Kontextmenü der Webseite angezeigt. Sie werden nach Funktion gruppiert, damit Benutzer schnell auf die gewünschte Aufgabe zugreifen können.
  • Schnellinfos ermöglichen zwei Arten von Szenarios: Benutzer können Informationen ohne eine Webseite zu verlassen in der "Vorschau" anzeigen oder "ausführen", um Inhalte direkt an eine Anwendung oder einen Webdienst zu senden.
  • Eine XML-basierte Schnellinfo verwendet eine XML-Datei, um das Format der HTTP-Anforderungen an den Webserver zu beschreiben. Daten vom Zielkontext (Auswahl, Link oder Dokument) werden als Variablen in URL-Parametern und/oder Formulardaten übergeben.
  • Für die Installation von XML-basierten Schnellinfos über eine Website verwenden Sie die Methode window.external.AddService für die Aufforderung des Benutzers.

Einführung

Mithilfe von Schnellinfos können Sie auf Daten in einer Webseite einwirken. Sie können einige Textzeilen auswählen und diese mit einem Klick an einen Blog senden oder per E-Mail versenden. Mithilfe einer zuvor installierten Schnellinfo führt diese Aktion die gewünschte Aktivität aus, indem zur gewünschten Website navigiert wird, wobei der ausgewählte Teil des Artikels bereits im Eingabefeld verfügbar ist. Sie können auch auf Daten einwirken, ohne mithilfe von "Vorschau"-Schnellinfos zu einer anderen Website zu wechseln. Sie können z. B. ein Wort übersetzen oder eine Adresse einer anderen Website auf Daten wirken; Sie können z. B. ein Wort übersetzen oder eine Adresse auf einer Karte abbilden. Zeigen Sie mit der Maus auf eine Schnellinfo, um das Vorschaufenster anzuzeigen.

Bildschirmabbildung der Zuordnung-Schnellinfo mit Vorschau
Abbildung 1: Das Zuordnen einer Adresse mit einer Vorschau-Schnellinfo.

Schnellinfos sind deklarativ. Sie kommunizieren zwischen dem Browser und der Website mithilfe der HTTP-Übermittlung. XML-basierte Schnellinfos sind einfach zu erstellen, zu testen und können für Benutzer leicht bereitgestellt werden.

Kategorien

Schnellinfos werden nach Funktion gruppiert, damit Benutzer schnell auf die gewünschte Aufgabe zugreifen können. Sie können die Standardschnellinfo für eine gegebene Kategorie bei der Installation der Schnellinfo oder über das Dialogfeld "Add-Ons verwalten" festlegen.

Beispiele von derzeit verfügbaren Diensten:

  • Hinzufügen: del.icio.us, Digg, Reddit
  • Blog: Windows Live Spaces, Windows Live Writer, Blogger
  • Definieren: Encarta, Wikipedia, Dictionary.com
  • Zuordnen: Windows Live Map, Google Maps, Yahoo! Maps, MapQuest
  • Senden: Windows Live Mail, Google Mail, Yahoo! Mail
  • Übersetzen: Windows Live Translation, AltaVista's Babel Fish, Google Übersetzer

Wenn die Schnellinfo nicht einer empfohlenen Kategorie entspricht, können Sie eine eigene definieren.

<os:activity category="Share">  

Die Kategorie sollte ein Verb sein, das der Benutzer wiedererkennen kann und das nicht an eine bestimmte Marke oder Anwendung gebunden ist, damit andere Schnellinfos ähnlicher Funktionalität diese Kategorie verwenden können. Da der Wert des Attributs category von "Add-Ons verwalten" verwendet wird, um Schnellinfos in Gruppen zu organisieren, sollte es darüber hinaus angemessen lesbar und großgeschrieben sein.

Variablen

Dokumenteigenschaften und Inhalte werden über HTTP GET- und/oder POST-Übermittlungen an den Schnellinfodienstanbieter gesendet. Diese Eigenschaften werden als Ersatzvariablen angegeben, die als Formularfelder oder URL-Parameter übergeben werden können. Variablen können direkt im action-Attribut von os:execute und os:preview (als "URL-Vorlage" bezeichnet) oder innerhalb von os:parameter-Elementen angegeben werden.

Hinweis: Sie können Status- und Benutzeranmeldeinformationen mithilfe von Cookies speichern.

Die folgenden Variablen sind verfügbar:

VariableKontextBeschreibung
{documentUrl}Alle†Das href-Element des Dokuments.
{documentTitle}AlleDas title-Element des Dokuments, sofern verfügbar.
{documentDomain}AlleEffektive Domäne der zweiten Ebene von "href" des Dokuments.
{documentHost}AlleVollqualifizierte Domäne von "href" des Dokuments.
{selection}AuswahlAktuell ausgewählter Text.
{link}LinkDas href-Element des ausgewählten Links.
{linkText}LinkDas innerText-Element des ausgewählten Links.
{linkRel}LinkDas rel-Element des ausgewählten Links, sofern verfügbar.
{linkType}LinkDas type-Element des ausgewählten Links, sofern verfügbar.
{linkDomain}LinkEffektive Domäne der zweiten Ebene von "href" des Links.
{linkHost}LinkVollqualifizierte Domäne von "href" des Links.

† Während der Vorschau außerhalb des Dokumentkontexts nicht verfügbar.

Einige wichtige Informationen zu Variablen:

  • Schließen Sie Variablennamen immer in geschweifte Klammern {} ein; z. B. {selection}. Um in der Anforderung das eigentliche Zeichen für die geschweifte Klammer anzugeben, versehen Sie es mit einem umgekehrten Schrägstrich, z. B. \{{selection}\}.
  • Folgt auf den Variablennamen ein "?", weist dies darauf hin, dass er optional ist. Beispiel: {documentTitle?}.
  • Wenn eine erforderliche (nicht optionale) Variable in der URL-Vorlage nicht verfügbar ist (z. B. das Ausführen einer Schnellinfo, die "{linkRel}" im action-Attribut einschließt, für einen Link ohne rel-Attribut), kann die Schnellinfo nicht ausgeführt werden, und ihr Eintrag im Kontextmenü wird abgeblendet dargestellt.
  • Wenn ein "os:parameter"-Element einen leeren Wert besitzt, wird es in der Anforderung nicht angezeigt.

URL-Vorlagenparameter

URL-Parameter übermitteln Informationen von der Webseite an den Dienst. In einer get-Anforderung werden alle Parameter in der URL übergeben, unabhängig davon, ob sie als "os:parameter"-Elemente angeben werden oder die Variablen direkt zur URL-Vorlage hinzufügt werden.

Hinweis: Wenn Sie "os:parameter"-Elemente angeben, werden die auf das Fragezeichen (?) folgenden URL-Parameter in der URL-Vorlage nicht verwendet.

Stellen Sie sicher, dass optionale Variablen in der URL-Vorlage ordnungsgemäß identifiziert werden. Betrachten Sie die folgende Vorlage:

<os:execute method="get"
    action="http://example.com/service.aspx?url={documentUrl}&title={documentTitle?}" />  

In diesem Beispiel ist documentUrl eine erforderliche Variable und documentTitle ist optional. Wenn der Wert von documentTitle leer ist, dann wird eine leere Zeichenfolge für den title-Parameter in der URL verwendet. Wenn der erforderliche Wert von documentUrl jedoch leer ist, dann ist die Schnellinfo im Kontextmenü "Schnellinfo" nicht verfügbar (abgeblendet).

Formularbasierte Parameter

In einer post-Anforderung geben die "os:parameter"-Elemente die Name-Wert-Paare von der Formulareingabe an. Im folgenden Beispiel werden die gleichen Werte wie im vorangehenden Beispiel übergeben.

<os:execute method="post" action="http://example.com/service.aspx>
    <os:parameter name="url" value="{documentUrl}" />
    <os:parameter name="title" value="{documentTitle?}" />
</os:execute>  

Wenn ein erforderlicher (nicht optionaler) Parameter nicht definiert ist, wird der Parameter ignoriert. Wenn {selection} z. B. angegeben wurde, aber nicht verfügbar ist, würde der Parameter aus der Anforderung entfallen.

Auswahltypen

Ausgewählter Text kann auf zwei Arten interpretiert werden: Als "Nur-Text" (Standard) oder als "html"-Markup. Der Auswahltyp wird im "os:parameter"-Element festgelegt.

Ausgewählter Text wird codiert, wie von der ausgewählten HTTP-Anforderungsmethode erfordert. Für die URL bedeutet dies, dass nicht alphanumerische Zeichen mit Prozentzeichen codiert und Zeilenumbrüche als "Wagenrücklauf-Zeilenvorschub"-Paare übergeben werden (%0D%0A). Wenn der Benutzer mehrere Textzeilen in einer Auswahl sendet, muss der Webdienst in der Lage sein, den "Wagenrücklauf-Zeilenvorschub" problemlos zu handhaben.

Sicherheitshinweis Sicherheitswarnung: Webdienste, die HTML als Eingabe akzeptieren, müssen ordnungsgemäß konfiguriert werden, um willkürliche HTML-Eingaben zu handhaben. Webdienste, die willkürliche Eingaben ohne Filterung oder Codierung ermöglichen, sind für HTML-/Skripteinschleusungsangriffe anfällig.

Wenn Sie eine Schnellinfo erstellen, die einen {selection}-Parameter vom Typ html verwendet, stellen Sie sicher, dass der Webdienst für die ordnungsgemäße Interpretation eingerichtet ist. Betrachten Sie den folgenden Dienst, der Text aus der Abfragezeichenfolge der URL akzeptiert und ihn mithilfe von Active Server Pages (ASP) direkt in das value-Attribut einer Texteingabe stellt:

<input name="txtQueryString" size="60" maxlength="65000" value="<%=Request.QueryString("q")%>" /> 

In diesem Fall, wenn der Dienst HTML von der Schnellinfo annehmen soll, ist es möglich, dass der eingehende Text das Eingabetag vorzeitig schließen und Teile der Webseite umschreiben könnte. Noch schlimmer, wenn es auf diese Weise eingeschleusten bösartigen Skript- oder SQL-Anweisungen ermöglicht wird, im Kontext der Domäne ausgeführt zu werden, die die Website hostet. Weitere Informationen zum Überprüfen von Eingaben, um Anwendungen vor Einschleusungsangriffen zu schützen, finden Sie unter Vorgehensweise: Verhindern von Einschleusungsangriffen in ASP.NET (möglicherweise in englischer Sprache). Lesen Sie hierzu auch die Diskussion zur clientseitigen Skripteinschleusung mithilfe von innerHTML.

Sicherheitsauswirkungen auf Dokumentvariablen

Da Dokumentvariablen verwendet werden könnten, um Benutzer ohne ihr Wissen nachzuverfolgen, können diese Variablen in bestimmten Kontexten nicht verwendet werden.

  • Dokumentvariablen können nicht von einer Vorschau-Schnellinfo verwendet werden, ausgenommen im Dokumentkontext.
  • Die Übertragung von Dokumentvariablen wird zwischen HTTP und HTTPS (Secure Hypertext Transfer Protocol) sowie von einer Sicherheitszone mit geringerer Einschränkung zu einer Zone mit höherer Einschränkung verhindert, z. B. von einer Seite in der Intranetzone zu einem Server im Internet.

Wenn eine erforderliche Dokumentvariable nicht verfügbar ist, wird der Schnellinfoeintrag im Kontextmenü abgeblendet dargestellt.

Vorschau

Eine Schnellinfo kann eine optionale HTML-Vorschau bereitstellen, die angezeigt wird, wenn der Benutzer auf eine Schnellinfo im Menü zeigt. Die Anzeige einer Vorschau ist hilfreich, um schnell eine Karte, eine direkte Definition oder Übersetzung, Inhaltsbewertungen oder Links auf verwandte Inhalte zu erhalten.

Das Vorschaufenster sollte für eine einfache Interaktion verwendet werden. Es kann Links enthalten, die den Benutzer zu einer vollständigen Webseite weiterleiten, die weitere Informationen enthält. Die Vorschau verhindert nicht, dass der Benutzer auf das Menüelement "Schnellinfo" klickt.

Die Vorschaufunktionalität wird in der OpenService-Schnellinfodatei durch das os:preview-Element angegeben. Wenn der Benutzer auf das Menüelement zeigt, erstellt Internet Explorer eine HTTP-Anforderung und zeigt das resultierende HTML innerhalb des HTML-Vorschaufensters an.

Größe

Das Vorschaufenster ist auf eine Breite von 320 und auf eine Höhe von 240 bei einer 96 dpi (dots per inch) Anzeige beschränkt. Alle Inhalte außerhalb des Bereichs werden abgeschnitten. Es wird nicht empfohlen, Inhalte einzufügen, die Steuerelemente mit Bildlaufleisten anzeigen. Die Vorschaufunktionalität ist dazu gedacht, damit der Benutzer die Informationen ohne überflüssige Interaktionen schnell anzeigen kann.

Inhalt

Die Vorschau schränkt Skriptressourcen auf dieselbe Domäne ein wie os:homepageUrl der Schnellinfo. Sie unterstützt auch Microsoft ActiveX-Steuerelemente, wenn sie vom Benutzer für die Domäne bereits installiert wurden.

Navigation

Der Benutzer kann mithilfe von Links innerhalb des Vorschaufensters navigieren. Damit der Benutzer an eine vollständige Webseite weitergeleitet wird, legen Sie für den Link fest, dass dieser in einem neuen Fenster geöffnet wird. Dafür gibt es zwei Möglichkeiten:

  1. Legen Sie für das target-Attribut "_blank" als Teil des Hyperlinks fest. Beim Aufruf durch den Benutzer öffnet der Browser dies als neue Registerkarte.
    <a href="gotosite.html" target="_blank">view full site</A>  
  2. Verwenden Sie die open-Methode, und legen Sie für die Eingabe-URL die Website fest, zu der der Benutzer navigieren soll.
    <FORM>
    <INPUT type="button" value="View Full Site" 
        onClick="window.open(gotosite.html')" />
    </FORM>  

Lokalisierung

Eine OpenService-Schnellinfodatei kann nur ein einzelnes Gebietsschema unterstützen. Wenn der Dienst mehrere Gebietsschemas unterstützt, benötigt er für jede Sprache eine separate XML-Datei. Zusätzlich zum Verwenden von dem Gebietsschema entsprechendem Text für os:name und os:description muss der Wert des category-Attributs auch in die Sprache des Benutzers übersetzt werden. Die diese Schnellinfos anbietende Webseite sollte den accept-language-Header der Anforderung verwenden, um die für den Benutzer zu installierende richtige XML-Datei zu bestimmen und anzuzeigen.

Englisches Beispiel

<?xml version="1.0" encoding="UTF-8"?>
<os:openServiceDescription
    xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
    <os:homepageUrl>http://maps.yahoo.com</os:homepageUrl>
    <os:display>
        <os:name>Map with Yahoo!</os:name>
    </os:display>
    <os:activity category="Map">
    ...
</os:openServiceDescription>  

Spanisches Beispiel

<?xml version="1.0" encoding="UTF-8"?>
<os:openServiceDescription
    xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
    <os:homepageUrl>http://maps.yahoo.com</os:homepageUrl>
    <os:display>
        <os:name>Mapa con Yahoo!</os:name>
    </os:display>
    <os:activity category="Mapa">
    ...
</os:openServiceDescription>  

Wenn ein Benutzer Schnellinfos von mehreren Gebietsschemas installiert, wird jede von ihnen angezeigt.

Installation

Internet Explorer 8 installiert Schnellinfos über die Webseite Diensthandbuch (möglicherweise in englischer Sprache). Websites können auch eigene Schnellinfos anpreisen.

Der erste Schritt besteht darin, die XML-Datei für die OpenService-Schnellinfo auf einem Webserver zu veröffentlichen. Die Installation einer XML-Schnellinfodatei vom lokalen System ist nicht zulässig. Sie können jedoch zu Testzwecken den IIS-Localhost (Microsoft Internet Information Server) oder den ASP.NET-Server von Microsoft Visual Studio verwenden.

Fügen Sie danach die Schnellinfoschaltfläche "Installieren" hinzu, die beim Anklicken "AddService" aufruft.

<button id="myButton"
    onclick="window.external.AddService('http://www.example.com/activity.xml')">
    Add MyMap to the shortcut menu in Internet Explorer 8</button> 

Es ist möglich zu überprüfen, ob der Benutzer die Schnellinfo derzeit installiert hat, indem IsServiceInstalled aufgerufen wird. Damit diese Prüfung ausgeführt werden kann, muss die Domäne der Webseite der Domäne von "os:homepageUrl" entsprechen, die in der OpenService-Schnellinfodatei angegeben ist.

window.onload = function() {
    if (window.external.IsServiceInstalled('http://www.example.com','map')) {
        document.getElementById('myButton').disabled = true;
    }
}

Wenn der Rückgabewert 0 ist, ist die Schnellinfo nicht installiert.

OpenService-Schnellinfoformat

In diesem Abschnitt werden die Elemente, Attribute und Werte des OpenService-Schnellinfodateiformats erläutert.

Beispiel

Die folgende XML-basierte Schnellinfo beschreibt die Interaktion zwischen dem Browser und einem Kartografiedienst.

<?xml version="1.0" encoding="UTF-8"?>
<os:openServiceDescription
    xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
    <os:homepageUrl>http://maps.example.com</os:homepageUrl>
    <os:display>
        <os:name>Map with MyMap</os:name>
        <os:icon>http://www.example.com/favicon.ico</os:icon>
        <os:description>Map addresses easily with MyMap.</os:description>
    </os:display>
    <os:activity category="Map">
        <os:activityAction context="selection">
            <os:preview action="http://maps.example.com/preview.php?addr={selection}" />
            <os:execute action="http://maps.example.com/" method="get">
                <os:parameter name="addr" value="{selection}" type="text" /> 
            </os:execute>
        </os:activityAction>
    </os:activity>
</os:openServiceDescription> 

os:openServiceDescription

<os:openServiceDescription
    xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">

Das Stammelement der OpenService-Schnellinfodatei ist os:openServiceDescription. Das xmlns-Attribut ist erforderlich und muss http://www.microsoft.com/schemas/openservicedescription/1.0 sein.

os:homepageUrl

<os:homepageUrl>http://maps.example.com</os:homepageUrl>

Erforderlich. Das "os:homepageUrl"-Element definiert die Haupt-URL der Schnellinfo, über die der Benutzer mit dem Browser auf den Dienst zugreifen kann. Alle in der OpenService-Schnellinfodatei deklarierten URLs müssen dieselbe Domäne wie die von "os:homepageUrl" verwenden.

os:display

<os:display> 

Erforderlich. Das os:display-Element beschreibt, wie die Schnellinfo dem Benutzer präsentiert wird. Es enthält sowohl die Elemente "os:name" als auch os:icon.

os:name

<os:name>Map with MyMap</os:name>

Erforderlich. Das os:name-Element der Schnellinfo, das dem Benutzer im Kontextmenü angezeigt wird. Schnellinfonamen sollten mit einem Verb beginnen, auf das der Dienstanbieter folgt. Beispiel: "Zuordnen auf Windows Live" oder "Definieren mit Encarta".

os:icon

<os:icon>http://www.example.com/favicon.ico</os:icon>

Optional. Das os:icon-Element stellt eine URL für ein Symbol (16 x 16 Pixel) dieser Schnellinfo bereit. Der verwendete Domänenname muss "os:homepageUrl" entsprechen.

os:description

<os:description>Map addresses easily with MyMap.</os:description> 

Optional. Das "os:description"-Element stellt eine umfassendere Beschreibung für die Schnellinfo bereit, die im Dialogfeld "Add-Ons verwalten" angezeigt wird.

os:activity

<os:activity category="Map">

Erforderlich. Das os:activity-Element enthält die gesamte Funktionalität einer Schnellinfo.

Jedes "os:activity"-Element muss ein category-Attribut angeben, um den Typ der Funktionalität zu beschreiben, die es anbietet. Schnellinfos werden im Kontextmenü des Browsers nach Kategorie sortiert, damit Benutzer schnell auf den gewünschten Vorgangstyp zugreifen können. Benutzer können die Standardschnellinfo für eine gegebene Kategorie auswählen, wenn die Schnellinfo installiert ist oder dazu das Dialogfeld "Add-Ons verwalten" verwenden. Standardschnellinfos wird im Kontextmenü des Browsers angezeigt, während alle anderen Schnellinfos in einem Untermenü aufgeführt werden. Weitere Informationen finden Sie im Abschnitt Kategorien.

os:activityAction

<os:activityAction context="selection">

Erforderlich. Jedes os:activityAction-Element gibt die Interaktion mit dem Dienstanbieter auf Basis des Ziels der Schnellinfo an. Das optionale context-Attribut gibt das Ziel an. Der Standardwert ist selection.

KontextBeschreibung
documentDas aktuelle Dokument. Immer verfügbar.
selectionStandard. Der ausgewählte Text. Die Schnellinfo ist nur verfügbar, wenn in einen ausgewählten Bereich geklickt wird.
linkEin Hyperlink. Die Schnellinfo ist nur für Links verfügbar.

os:preview

<os:preview action="http://maps.example.com/preview.php?addr={selection}" />

Optional. Das "os:preview"-Element definiert den Inhalt des HTML-Fensters, der angezeigt wird, wenn der Benutzer auf die Schnellinfo zeigt. Es verwendet dieselben Attribute und untergeordneten Elemente wie das "os:execute"-Element. Weitere Informationen finden Sie im Abschnitt Vorschau.

Die URL des action-Attributs kann Variablennamen enthalten, die beim Ausführen des Befehls ersetzt werden. Weitere Informationen finden Sie im Abschnitt zu Variablen.

os:execute

<os:execute action="http://maps.example.com/" method="get"> 

Erforderlich. Das os:execute-Element gibt die Hauptaktion an, die beim Aufrufen der Schnellinfo durch den Benutzer ausgelöst wird. Wie "os:preview" kann es Ersatzvariablen im action-Attribut oder als separate "os:parameter"-Elemente enthalten.

Die folgenden Attribute sind für "os:execute" und "os:preview" definiert:

AttributErforderlich?Beschreibung
actionJaDie für die HTTP-Übermittlung zu verwendende URL-Vorlage.
methodNeinDer zu verwendende Typ der HTTP-Methode (get, post). Der Standardwert ist get.
enctypeNeinDie Art des Inhalts, der an den Server übermittelt wird. Der Standardwert ist application/x-www-form-urlencoded.
accept-charsetNeinDer für die Übermittlung verwendete Zeichensatz. Der Standardwert ist utf-8.

os:parameter

<os:parameter name="addr" value="{selection}" type="text" /> 

Optional. Das os:parameter-Element stellt eine alternative Möglichkeit bereit, um die zu verwendenden Werte anzugeben. Die erforderlichen name- und value-Attribute definieren Zeichenfolgeneingaben, die für den Dienst spezifisch sind und normalerweise auf Schnellinfovariablen verweisen. Eine Liste finden Sie im Abschnitt Variablen.

Das optionale type-Attribut wird verwendet, um die {selection}-Variable in HTML oder Nur-Text zu transformieren. Der Standardwert ist text.

Verwandte Themen

Community-Beiträge

Anzeigen: