-
Notifications
You must be signed in to change notification settings - Fork 4
/
619.txt
132 lines (93 loc) · 7.03 KB
/
619.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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
[10] [CODE(HTMLe)@en[[[iframe]]]] [[要素]]の [DFN[[CODE(HTMLa)@en[[[srcdoc]]]]]] [[属性]]は、
[CODE(HTMLe)@en[[[iframe]]]] 内に[[レンダリング]]する[[文書]]を埋め込むための[[属性]]です。
[CODE(HTMLa)@en[[[src]]]] [[属性]]に [CODE(URI)@en[[[data:]]]] [[URL]] を使って [[HTML文書]]を埋め込むのと似ていますが、
構文的に [CODE(HTMLa)@en[[[srcdoc]]]] [[属性]]の方が単純ですし、より使いやすいような規定が色々あります。
* 仕様書
[REFS[
- [17] '''[CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-12-19 00:10:55 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#attr-iframe-srcdoc>'''
- [11] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-12-19 00:10:55 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#about:srcdoc>
- [26] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-12-19 00:10:55 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#the-initial-insertion-mode>
]REFS]
* 意味
[18] [CODE(HTMLa)@en[[[srcdoc]]]] [[属性]]は、 [CODE(HTMLe)@en[[[iframe]]]] [[要素]]が[[表現]]する[[入れ子閲覧文脈]]に含まれるページの内容を指定するものです。 [SRC[>>17]]
[22] [CODE(HTMLa)@en[[[srcdoc]]]] [[属性]]と [CODE(HTMLa)@en[[[src]]]] [[属性]]の両方がある場合、
[CODE(HTMLa)@en[[[srcdoc]]]] [[属性]]が優先されます。 [CODE(HTMLa)@en[[[src]]]] [[属性]]は古い
[[Webブラウザー]]のための[[フォールバック]]として使うことができます。
* IDL 属性
[24] [CODE(DOMi)@en[[[HTMLIFrameElement]]]] [[インターフェイス]]の [DFN[[CODE(DOMa)@en[[[srcdoc]]]]]]
[[IDL属性]]は、 [CODE(DOMi)@en[[[DOMString]]]] の読み書き可能な[[属性]]であり、
[CODE(HTMLa)@en[[[srcdoc]]]] [[内容属性]]を[[反映]]します。 [SRC[>>17]]
* [CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]] 文書
[19] [CODE(HTMLa)@en[[[srcdoc]]]] [[属性]]を解釈することによって生じる[[文書]]のことを、
[DFN[[RUBYB[[[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]]@en[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]] document]]]]といいます。
[12] [[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]の[[文書の番地]]には、
[DFN[[CODE(URI)@en[[[about:srcdoc]]]]]] という特別な [[URL]] が使われます [SRC[>>11]]。
[25] [[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]の[[起源]]や[[実効スクリプト起源]]は、
外側の[[文書]]のものの[[エイリアス]]となります。
[20] [[HTML文書]]に含まれる[[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]は [[HTML文書]]、
[[XML文書]]に含まれる[[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]は [[XML文書]]でなければ[['''なりません''']]。
[SRC[>>17]]
[21] [CODE(HTML)@en[[[DOCTYPE]]]] は省略できます [SRC[>>17]]。[[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]は
[CODE(HTML)@en[[[DOCTYPE]]]] の有無や内容によらず、[[無奇癖モード]]となります [SRC[>>26]]。
;; [32] ただし、 [CODE(HTML)@en[[[DOCTYPE]]]] を記述する場合には、
構文的に正しいものでなければいけません。[[構文解析器]]は、
構文的に正しくない [[DOCTYPE]] に対して[[構文解析エラー]]を報告しなければなりません。
[16] [[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]には[[文字符号化宣言]]を含めることができません。
([[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]は[[文字符号化]]された[[バイト列]]ではなく、
[[DOM]] 上に出現する[[文字列]]だからです。)
[13] [[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]の[[フォールバック基底URL]]は、
外側の[[文書]]の[[文書基底URL]]です。ひいては [CODE(HTMLe)@en[[[base]]]] [[要素]]がない
[[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]の[[文書基底URL]]も、外側の[[文書]]の[[文書基底URL]]
となります。 [SRC[>>11]]
[15] [[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]では、 [CODE(HTMLe)@en[[[title]]]]
[[要素]]を省略できます。
[23] [[[CODE(HTMLe)@en[iframe]] [CODE(HTMLa)@en[srcdoc]]文書]]には [CODE(HTMLa)@en[[[seamless]]]]
[[属性]]の効果が適用されます。
* 処理
[27] [CODE(HTMLa)@en[[[srcdoc]]]] [[属性]]が設定、変更、削除されると、 [CODE(HTMLe)@en[[[iframe]]]]
[[要素]]の処理が行われ、[[入れ子閲覧文脈]]が [CODE(HTMLa)@en[[[srcdoc]]]] と
[CODE(HTMLa)@en[[[src]]]] に基づき [[navigate]] されます。
[33] [[再読込]]も同様です。
;; [CODE(JS)@en[[[location.reload]]]] を参照。
* 関連
[14] [CODE(HTMLa)@en[[[srcdoc]]]] [[属性]]は[[翻訳可能属性]]です。
* 歴史
[1] [CITE@en[(X)HTML5 Tracking]]
([TIME[2010-01-23 00:27:13 +09:00]] 版)
<http://html5.org/tools/web-apps-tracker?from=4618&to=4619>
[2] [CITE[IRC logs: freenode / #whatwg / 20100120]]
([TIME[2010-01-21 23:48:40 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100120>
[3] [CITE[IRC logs: freenode / #whatwg / 20100121]]
([TIME[2010-01-23 15:13:04 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100121#l-557>
[4] [CITE[IRC logs: freenode / #whatwg / 20100122]]
([TIME[2010-01-24 23:26:45 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100122#l-220>
[5] [CITE[IRC logs: freenode / #whatwg / 20100130]]
([TIME[2010-01-31 21:32:20 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100130#l-301>
[6] [CITE[IRC logs: freenode / #whatwg / 20100820]]
( ([TIME[2010-08-22 16:21:56 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20100820#l-134>
[7] [CITE[''''''[''''''whatwg'''''']'''''' srcdoc="" feedback]]
( ([TIME[2010-11-16 08:43:29 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-November/029033.html>
[8] [CITE[''''''[''''''whatwg'''''']'''''' <iframe srcdoc> and Content-Security-Policy]]
( ([TIME[2012-05-08 08:27:51 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-May/035707.html>
[9] [CITE@en[Web Applications 1.0 r7960 make srcdoc docs always be in standards mode]]
( ([TIME[2013-06-13 02:53:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7959&to=7960>
[28] [CITE@en[(X)HTML5 Tracking]]
([TIME[2010-01-23 00:27:13 +09:00]] 版)
<http://html5.org/tools/web-apps-tracker?from=4618&to=4619>
[29] [CITE[IRC logs: freenode / #whatwg / 20100810]]
([TIME[2010-08-15 11:23:35 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100810#l-144>
[30] [CITE@en[Web Applications 1.0 r5679 Make about:srcdoc documents have better defined handling for base URL, Referer headers, and location.reload().]]
( ([TIME[2010-11-13 09:01:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=5678&to=5679>
[31] [CITE[REFERRER: srcdoc documents. · 65f9389 · w3c/webappsec]]
( ([TIME[2014-06-16 03:04:56 +09:00]] 版))
<https://github.com/w3c/webappsec/commit/65f9389edfce6d91bdda3a3cca3bf1b63bc53c5c>