/
460.txt
98 lines (70 loc) · 5.38 KB
/
460.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
[3] [CODE(DOMi)@en[[[Navigator]]]] [[オブジェクト]]の
[DFN[[CODE(DOMm)@en[[[registerProtocolHandler]]]]]]
[[メソッド]]を使うと、特定の [[URL scheme]] の [[URL]]
を処理する [[Webアプリケーション]]を [[Webブラウザー]]に登録することができます。
* 仕様書
- [4] [[HTML5]]
-- <http://www.whatwg.org/specs/web-apps/current-work/#custom-handlers>
* 実装
[6] [[Firefox3]] で [CODE(JS)@en[[[navigator]].[[registerProtocolHandler]]]]
[[メソッド]]を呼び出すと、[[閲覧領域]]上部にメッセージ欄が現れて、
プロトコル取扱器が提供されている旨とそれを追加するボタンが現れます。
ボタンを押すと [[Webブラウザー]]にインストールされます。
;; 一度インストールすると設定画面から削除しない限りずっと有効なようです。
;; インストール後にまったく同じ[[引数]]で[[メソッド]]を呼び出すと、
ボタンなしでインストール済みですというメッセージが出てくるようです。
[7] その後登録した [[URL scheme]] を使おうとするとプログラム選択の[[窓]]が出てきて、
そこから選ぶと[[引数]]で指定した [[URL]] が使われます。この選択の[[窓]]には「以後表示しない」
というチェックがついていて、それをチェックしておくと次からは聞かれません。
[8] 同じ [[URL scheme]] について別の [[URL]] を登録すると、 >>7 の選択肢として新たに追加されます。
以後表示しないとしていてもまた勝手に聞かれるようになるみたいです。
[19] [[Chrome]] では、複数登録されていても、いずれか標準で選択されたものが使われるようです。
どれを選択するかは設定画面で決定できます。
[18] [[Windows]] 上の [[Chrome]] は、 [[OS]] の [[URL scheme]] の取扱器としても登録するようです。
[20] [[Windows]] 上の [[Firefox]] は、 [[OS]] の [[URL scheme]] の取扱器や [[Firefox]]
の取扱器の一覧を非モーダルなダイアログで表示し、選択させるようです。
[[OS]] の [[URL scheme]] として登録はしないようです。
* 参考文献
[1] [CITE@en-us[Web-based protocol handlers - MDC]] ([TIME[2009-04-12 11:38:21 +09:00]] 版) <https://developer.mozilla.org/ja/Web-based_protocol_handlers>
[2] [CITE@en-us[registerProtocolHandler - MDC]] ([TIME[2009-04-12 11:39:35 +09:00]] 版) <https://developer.mozilla.org/ja/DOM/window.navigator.registerProtocolHandler>
* メモ
[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:]]]] に使っている例も見かけました。
それ以外は見てないなあ。
[10] [CITE[IRC logs: freenode / #whatwg / 20100111]]
([TIME[2010-01-13 07:32:59 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100111>
[11] [CITE@en[Web Applications 1.0 r6523 registerProtocolHandler() and registerContentHandler() security updates]]
( ([TIME[2011-08-24 08:27:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6522&to=6523>
[12] [CITE[''''''[''''''whatwg'''''']'''''' Proposal to extend registerProtocolHandler]]
( ([TIME[2011-08-26 07:45:49 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-August/032986.html>
[13] [CITE@en[Web Applications 1.0 r6524 Add an API to unregister a handler and an API to check if a handler is registered.]]
( ([TIME[2011-08-26 07:23:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6523&to=6524>
[14] [CITE@en[Web Applications 1.0 r8051 Add more schemes to the registerProtocolHandler whitelist]]
( ([TIME[2013-07-13 03:07:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=8050&to=8051>
[15] [CITE@en[Re: Allow javascript: URIs for registerProtocolHandler]]
( ([[Ian Hickson]] 著, [TIME[2013-11-28 08:43:37 +09:00]] 版))
<http://lists.w3.org/Archives/Public/public-webapps/2013OctDec/0622.html>
[16] [CITE[registerProtocolHandler() & registerContentHandler() — Anne’s Blog]]
( ([TIME[2014-08-22 07:08:07 +09:00]] 版))
<http://annevankesteren.nl/2014/08/registerprotocolhandler>
[17] [CITE@en[1056860 – Improve registerProtocolHandler()]]
( ([TIME[2014-09-23 05:02:58 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=1056860>
[21] [CITE@en[Fate of registerProtocolHandler() / registerContentHandler() and friends? · Issue #630 · whatwg/html]]
([TIME[2016-02-06 12:38:44 +09:00]] 版)
<https://github.com/whatwg/html/issues/630>
[22] [CITE@en[26876 – Title argument for both registerProtoclHandler() and registerContentHandler() should be removed as i ''''''[''''''...'''''']'''''']]
([TIME[2016-02-06 12:38:48 +09:00]] 版)
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=26876>