まとめっていう程のことでもないですが、IE8の新機能「アクセラレータ」の作り方について、15分ぐらいで作れちゃったので、まとめを以下に。


アクセラレータとは
アクセラレータとは、「ページ内の気になった文字を選択してワンクリックするだけで、選択した文字を元に検索したり、地図を表示したり、翻訳結果を確認することができる」機能と書いてあります。

ピクチャ 21

このように、ブラウザの中でテキストを選択して反転させると、青い右上に矢印が向いたアイコンが出てくるので、そこをクリックすると、コンテキストメニュー風にいろいろな「アクセラレータ」のリストが表示されます。例えばこの場合は、「Googleで検索」を選択すると、別タブが現れて「バンパイア」というキーワードのGoogle検索結果のページが表示されるという訳です。

「アクセラレータ」が何かと言えば、上の画面で言えば、「Googleで検索」「Live Searchで翻訳」などそれぞれがアクセラレータであり、ユーザは、様々なアクセラレータをMSの一覧サイトや他のいろいろなサイトからダウンロード・インストールして使用できます。



アクセラレータの実体
アクセラレータの実体は、下記のようなXML。例えばこのXMLは、ブラウザ上で選択したところを引用する形で TypePad Japanへクイック投稿するアクセラレータです。

<?xml version="1.0" encoding="shift-jis"?>
<openServiceDescription xmlns="http://www.microsoft.com/schemas/openservicedescription/1.0">

  <homepageUrl>http://www.typepad.jp/</homepageUrl>

  <display>
    <name>Blog it! at TypePad Japan</name>
    <icon>http://www.typepad.jp/favicon.ico</icon>
  </display>

  <activity category="ブログ">
    <activityAction>
      <execute action="https://www.typepad.jp/t/app/weblog/post">
        <parameter name="v" value="2" />
        <parameter name="is_qp" value="1" />
        <parameter name="__mode" value="edit_entry" />
        <parameter name="qp_show" value="tb,ca,ac,ap,cb,ex,tm,kw,tt,ew" />
        <parameter name="qp_title" value="{documentTitle}" />
        <parameter name="qp_href" value="{documentUrl}" />
        <parameter name="qp_text" value="{selection}" />
      </execute>
    </activityAction>
  </activity>

</openServiceDescription>


アクセラレータXMLの書き方

アクセラレータXMLの書き方は結構簡潔に以下のドキュメントの中でまとめられているようです。

Internet Explorer 8 Beta 1 for Developers ホワイトペーパー内 「Activities」の項

<display>タグの中は、コンテキストメニューの中に表示する情報です。

  • <name>タグ内はコンテキストメニューに表示する表示文言
  • <icon>タグにはコンテキストメニューで表示するfaviconのURL

<activity>タグの中に、実際にデータを送信する先と送信内容を記述します。category属性にはユーザがアクセラレータを管理する画面で分類されるカテゴリー名を記述。「検索」「ブログ」などがすでに規定されていて、その規定カテゴリーと同じカテゴリーに入れても良いし、新たに定義しても良い。

<execute>タグの中にデータ送信先と送信方法を記述。action属性はデータ送信先のURL。GET/POSTメソッド共にサポートされているがデフォルトはGETメソッド。method属性で"post"を指定すればPOSTできる。

後は<parameter>タグの中に GET/POSTで送信するパラメータを、name属性→パラメータ名、value属性→その値 の要領でいれていきます。

この中で、{}で囲まれる表記・・・例えば {documentTitle} など・・・は Activity変数と言われ、ブラウザが表示しているドキュメントのタイトルやURL、現在選択している内容などの変数があります。ホワイトペーパーに書いてあるのは、以下の変数。

    • documentDomain 
    • documentTitle 
    • documentUrl 
    • link 
    • linkDomain 
    • linkRel 
    • linkText 
    • linkType 
    • selection

最低限この要領でXMLを作れば、ひとまずのアクセラレータXMLができあがり。


ブラウザにインストールするには
ブラウザにインストールするには、

<button onclick="window.external.addService('http://www.okoshi.org/software/TP_quickpost.xml')" type="submit">「TypePad.com quickpost」アクセラレータのインストール</button>

という感じでタグを書くと、ページ上にボタンを設置でき、IE8でクリックするとアクセラレータをブラウザにインストールできます。


参考
以下の@ITのページを主に参考にさせていただきました。