-
Notifications
You must be signed in to change notification settings - Fork 4
/
640.txt
61 lines (45 loc) · 2.89 KB
/
640.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
[2] 本項では [[Web]] における[[モーダルダイアログ]]について扱います。
* 仕様書
[REFS[
- [1] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2014-04-03 03:44:44 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#user-prompts>
]REFS]
* モーダルダイアログの一覧
[3] [[Web]] には次の[[著者]]による[[モーダルダイアログ]]が存在します。
[FIG(short list)[
- [CODE(JS)@en[[[alert()]]]]
- [CODE(JS)@en[[[conform()]]]]
- [CODE(JS)@en[[[prompt()]]]]
- [CODE(DOMe)@en[[[beforeunload]]]]
- [CODE(JS)@en[[[window.print]]]]
- [CODE(JS)@en[[[showModalDialog]]]]
- [CODE(HTMLe)@en[[[dialog]]]] [[要素]]の [CODE(DOMa)@en[[[openModal]]]]
- [[HTTP認証]]
]FIG]
[4] 最初の3つは [[Netscape Navigator]] の [[JavaScript]] に初期から含まれていたものです。
次の3つは [[IE]] が実装し、他の [[Webブラウザー]]も追随しました。
これらはいずれも [[HTML Standard]] によって初めて標準化されました。
[[イベントループ]]の [[pause]] (最初の5つ) や[[スピン]] ([CODE(DOMm)@en[[[showModalDialog]]]])
を伴う、[RUBY[今日][こんにち]]から見ると特殊な仕組みを採用しています。
[5] [CODE(HTMLe)@en[[[dialog]]]] [[要素]]は [[HTML Standard]] によって追加されたもので、
[[CSS]] などによる近代的な仕組みで実現されていて、
[[イベントループ]]の特殊な制御を伴いません。
[7] [[利用者エージェント]]には他にも次の[[モーダルダイアログ]]が存在します。
[FIG(short list)[
- [[非安全]]な [CODE(JS)@en[[[location.reload]]]]
]FIG]
* モーダル性
[6] かつては[[モーダルダイアログ]]によって[[Webブラウザー]]全体がブロックされるのが普通でしたが、
徐々に緩和され、 [[タブ]]や[[関係する類似起源閲覧文脈の単位]]の範囲のみでブロックされるようになってきています。
* 停止
[9] [[ブラクラ]]目的等[[利用者]]にとって迷惑な[[モーダルダイアログ]]の利用を防ぐため、
最近の [[Webブラウザー]]は[[モーダルダイアログ]]の過度な表示を抑制する機能が備わっています。
[EG[
[10] 例えば [[Webブラウザー]]によっては、複数回同じ[[モーダルダイアログ]]が表示された時に以後表示しない[[チェックボックス]]を表示します。
]EG]
[EG[
[11] 例えば [[Webブラウザー]]によっては、[[モーダルダイアログ]]が表示された時に[[スクリプト]]の実行を停止させることができます。
]EG]
* メモ
[8] [CITE[Part2 - browsersec - Browser Security Handbook, part 2 - Browser Security Handbook - Google Project Hosting]]
([TIME[2015-03-31 16:48:10 +09:00]] 版)
<https://code.google.com/p/browsersec/wiki/Part2#Popup_and_dialog_filtering_logic>