1. ホーム
  2. Blog
  3. IE8の新機能「アクセラレータ」Accelerator の作り方

IE8の新機能「アクセラレータ」Accelerator の作り方

川崎 有亮

川崎 有亮

技術

川崎 です。普段の常用ブラウザとしては、画面が広く使える Chrome を使っているのですが、Internet Explorer 8 Beta 2 に搭載されている新機能「アクセラレータ」について、調べてみました。
Beta 1 までは「Activities」と呼ばれていたコンテキスト駆動?の検索機能です。
以下のような XML で定義ファイルを記述するだけなので、手軽に実装できます。

<openServiceDescription xmlns="http://www.microsoft.com/schemas/openservicedescription/1.0">
    <homepageUrl>http://example.com/</homepageUrl>
    <display>
        <name>○○検索</name>
        <icon>http://example.com/favicon.ico</icon>
    </display>
    <activity category="Map">
        <activityAction context="selection">
            <execute method="get" action="http://example.com/execute.cgi">
                <parameter name="query" value="{selection}" type="text" />
            </execute>
            <preview method="get" action="http://example.com/preview.cgi">
                <parameter name="query" value="{selection}" type="text" />
            </preview>
        </activityAction>
    </activity>
</openServiceDescription>
アクセラレータの使い方について、詳しくは Microsoftのサイトを参照
要は、画面遷移する execute と、吹き出し表示する preview の2種類があります。
 
ブラウザの画面上で選択中の文字列が、{selection} に渡されます。
日本語などは、デフォルトでは UTF-8 で URL エンコードされます。
execute 要素で accept-charset="Shift_JIS" 等とすれば、文字コードを指定できます。
 
execute 要素の action 属性の URL 中に {selection} を使うこともできます。
クエリ変数が複数ある場合は、parameter 要素を複数並べても OK。
 
execute や preview の action 先の URL は、すべてhomepageUrl のドメインに一致する必要があります
というのを知らずに、ハマりました。icon は、別ドメインでも大丈夫なようです。
ドメインが同じであれば、サブドメインが違っても OK なようですが、
サブドメインの何階層まで判定しているのかとか、詳細な仕様は不明です。
とりあえず、安全のために、ドメインをそろえておいた方が確実そうです。
 
Beta 1 時点の資料で この日本語 PDF が詳しいですが、そこまで載っていません。
 
作成した XML ファイルを例えば accelerator.xml というファイル名にしたら、JavaScript で
window.external.addService('accelerator.xml');

を実行すれば、IE8 にアクセラレータが登録されます。
addService メソッドの引数は、XML ファイルに繋がれば相対 URL でも OK。
 
一般公開されているアクセラレータは、Internet Explorer Gallery に掲載されてます。(英語)
このギャラリー・サイトはまだ日本語対応されていませんが、英語以外にも
ドイツ語・中国語は既に公開されている。日本語が後回しなのは残念なところ。


トップへ戻る