[3] [CODE(DOMi)@en[[[Navigator]]]] [[オブジェクト]]の [DFN[[CODE(DOMm)@en[[[registerProtocolHandler]]]]]] [[メソッド]]を使うと、特定の [[URL scheme]] の [[URL]] を処理する [[Webアプリケーション]]を [[Webブラウザー]]に登録することができます。 * 仕様書 - [4] [[HTML5]] -- * 実装 [6] [[Firefox3]] で [CODE(JS)@en[[[navigator]].[[registerProtocolHandler]]]] [[メソッド]]を呼び出すと、[[閲覧領域]]上部にメッセージ欄が現れて、 プロトコル取扱器が提供されている旨とそれを追加するボタンが現れます。 ボタンを押すと [[Webブラウザー]]にインストールされます。 ;; 一度インストールすると設定画面から削除しない限りずっと有効なようです。 ;; インストール後にまったく同じ[[引数]]で[[メソッド]]を呼び出すと、 ボタンなしでインストール済みですというメッセージが出てくるようです。 [7] その後登録した [[URL scheme]] を使おうとするとプログラム選択の[[窓]]が出てきて、 そこから選ぶと[[引数]]で指定した [[URL]] が使われます。この選択の[[窓]]には「以後表示しない」 というチェックがついていて、それをチェックしておくと次からは聞かれません。 [8] 同じ [[URL scheme]] について別の [[URL]] を登録すると、 >>7 の選択肢として新たに追加されます。 以後表示しないとしていてもまた勝手に聞かれるようになるみたいです。 * 参考文献 [1] [CITE@en-us[Web-based protocol handlers - MDC]] ([TIME[2009-04-12 11:38:21 +09:00]] 版) [2] [CITE@en-us[registerProtocolHandler - MDC]] ([TIME[2009-04-12 11:39:35 +09:00]] 版) * メモ [5] 登録が有効なのは登録した[[文書]]ないし[[起源]]だけかと思い込んでいましたが、 そうではなく [[Webブラウザー]]上のほぼあらゆる [[URL]] 処理に適用されるのですね。 [[Firefox3]] で試しましたが、[[起源]]に関わらず [CODE(HTMLe)@en[[[a]]]], [CODE(HTMLe)@en[[[img]]]], [CODE(HTMLe)@en[[[iframe]]]], [[Webブラウザー]]の [[URL]] 入力欄などいろいろな場所で使えました。 [9] [TIME[2009-04-12T03:08:11.100Z]]: ぐぐってみると、 [CODE(URI)@en[[[mailto:]]]] に [[GMail]] を登録するために使っている人が多いみたいですね。他には [CODE(URI)@en[[[msnim:]]]] に使っている例も見かけました。 それ以外は見てないなあ。