/[pub]/suikawiki/sw4data/ids/8/755.txt
Suika

Contents of /suikawiki/sw4data/ids/8/755.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations) (download)
Sat Aug 20 02:21:44 2011 UTC (13 years, 10 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +5 -1 lines
File MIME type: text/plain
updated by (anon)

1
2
3 * [CODE(HTMLe)@en[input]] [CODE(HTMLa)@en[type]] [CODE(HTML)@en[url]] (HTML)
4
5 [4]
6 [[HTML]] の [CODE(HTMLe)@en[[[input]]]]
7 [[要素]]の [CODE(HTMLa)@en[[[type]]]] [[属性]]を
8 [DFN@en[[CODE(HTML)[[[url]]]]]] とすると、
9 [[IRI]] を指定する[[フォーム制御子]]となります。
10
11 ;; [[URL]] という言葉を[[名前]]に使っていますが、
12 実際には任意の [[IRI]] を扱うことができます。
13
14 [5] 仕様書:
15 - [[Web Forms 2.0]]
16 -- [CSECTION@en[2.4. Extensions to the [CODE(HTMLe)@en[[[input]]]] element]]
17 <IW:WF2:"#extensions">
18
19 [[#comment]]
20
21
22 ** 値の構文
23
24 [6]
25 [[RFC 3987]] の [[IRI]] ([[生成規則]]
26 [CODE(ABNF)@en[[[IRI]]]]) です。
27 従って、[[相対IRI参照]]は認められません。
28 [SRC@en[WF2 2.4]]
29
30 [3]
31 [[IDN]] を使用[['''して構いません''']]。
32 [[利用者エージェント]]は [[IDNA]] [[符号化]]せずに、
33 元々入力された通りの[[ドメイン名]]で[[提出]][['''するべきです''']]。
34 [SRC@en[WF2 2.4]]
35
36 [9]
37 [[利用者エージェント]]は、
38 [[利用者]]が[[相対IRI参照]]やその他の [[IRI]]
39 としては不完全な値を入力することを認めても構いません。
40 しかし、 [CODE(DOMa)@en[[[isTypeMismatch]]]]
41 の判定や[[フォーム提出]]に用いる値は[[絶対IRI]]でなければなりません。
42 [SRC@en[WF2 2.4]]
43
44 [10]
45 [[利用者エージェント]]は、 [CODE(ABNF)@en[[[IRI]]]]
46 [[生成規則]]に[[一致]]する任意の[[文字列]]を受け付け[['''しなければなりません''']]。
47 [[文字]]の並びが[[論理順]]であることなどの [[IRI]]
48 の仕様上の非構文的制約を[[利用者エージェント]]が検査する必要はありません。
49 [SRC@en[WF2 2.4]]
50
51 [[#comment]]
52
53
54 ** 互換性
55
56 [13] '''未対応利用者エージェントとの互換性'''
57
58 [CODE(HTML)@en[[[month]]]] に対応していない[[利用者エージェント]]は、
59 [CODE(HTML)@en[[[text]]]] (単一行[[文章入力制御子]])
60 として扱います。従って、[[利用者]]は任意の文字列を入力することができます。
61
62 ですから、[[著者]]は、対応している[[利用者エージェント]]が一般的になるまでの間、
63 [[フォーム制御子]]の近くで記入方法を説明しておくのがよいでしょう。
64 [[フォーム処理エージェント]]は記入された値が適当か検査するべきです
65 (これは[[安全性]]の観点からも重要です)。
66
67 [[#comment]]
68
69
70 ** 歴史
71
72 [10]
73 この [CODE(HTMLe)@en[[[input]]]] [CODE(HTMLa)@en[[[type]]]]
74 は [[Web Forms 2.0]] で導入されました。
75
76 [19] 当初は [CODE(HTML)@en[[[uri]]]] という名前で提案されていましたが、
77 [[CSS]] の [CODE(CSS)@en[[[url]]()]] [[関数]]をはじめ、
78 [[Web]] では [[URL]] という名前が伝統的によく用いられてきたことから、
79 [[Web Forms 2.0]] でも [CODE(HTML)@en[[[url]]]]
80 という名前に改称されました。
81
82 [20] [CODE(HTMLe)@en[[[input]]]] [CODE(HTMLa)@en[[[type]]]]
83 [CODE(HTML)@en[[[url]]]] は [[Opera]] 9 がはじめて実装しました。
84
85 [[#comment]]
86
87
88 ** 実装
89
90 [11]
91 [[Opera 9]] が実装しています。
92
93 [[#comment]]
94
95
96 ** メモ
97
98 [[#comment]]
99
100
101 * [CODE(HTTP)@en[Refresh:]] 欄 [CODE(HTTP)@en[url]] 引数 (HTTP)
102
103 [2] 飛び先の [[URL]] を指定します。省略した場合は当該[[実体]]の [[URI]]
104 と仮定します。つまり再読み込みとなります。
105
106 詳しくは [CODE(HTTP)@en[[[Refersh]]:]] 欄の項を参照。
107
108
109 * META 要素 URL 属性 (HTML)
110
111 [1] [[WebTV]] のリファレンスにそれっぽく登場しますが、実在が強く疑われます。
112 <http://web.archive.org/web/20000523161756/developer.webtv.net/authoring/html/meta.html>
113
114 説明を読むとどうも、 [[Refresh:]] を [[http-equiv]] で使った時の
115 [[content]] 属性の値の内部にある [CODE(HTTP)[URL]] パラメーターのことを指しているように思われます。
116
117 [[HTML]] 2.0 に由来するなんて書いてありますが、 [[RFC1866]]
118 にはそんなものありません。
119
120 [[#comment]]
121
122
123 * [CODE(CSS)@en[url()]] 関数 (CSS)
124
125 [14]
126 [[CSS]] の[[関数]]の中で、 [CODE(CSS)@en[[[url]]]]
127 だけは[[字句解析]]の段階で特別扱いされています。
128 [[関数名]]は、他の[[関数]]は [CODE@en[[[ident]]]]
129 として定義されているので [CODE(char)[[[\]]]]
130 による [[escape]] が可能ですが、
131 [CODE(CSS)@en[[[url]]]] では使えません。
132
133 ;; <IW:CSS2:"syndata.html">
134
135 [15]
136 >>14 を [[Opera]] 9 は正しく実装していますが、
137 [[Firefox]] 1.5 と [[WinIE]] 6 は [[escape]]
138 されていてもおkです。
139
140 ;; <http://suika.fam.cx/~wakaba/-temp/test/css/tokenize/>
141
142 [16]
143 >>14-15 あ、でも、 [CODE@en[URI]] にならないかわりに、
144 [CODE@en[FUNCTION]], ... にはなるのか・・・。
145 [[字句]] [CODE@en[URI]] と [[CSS]] の構文定義にでてくる
146 [CODE@en[<uri>]] の関係が実は明記されていないから、
147 [CODE@en[FUNCTION]], ... だけど [CODE@en[<uri>]]
148 である、という解釈も可能?
149
150 [Q@en[The format of a URI value is 'url(' followed by ...]]
151 だからやっぱだめ?
152
153 [17] '''Firefox 2.0's implementation''':
154 = Let [VAR@en[u]] be an empty string.
155 = Let [VAR@en[invalid]] be false.
156 = Unless the string starts by an [CODE(CSS)@en[[[ident]]]] with value
157 [CODE(CSS)@en[[[url]]]] (case-insensitive,
158 [CODE(CSS)@en[[[escape]]]] is allowed,
159 [CODE(CSS)@en[[[\]]]] followed by a [CODE(CSS)@en[[[newline]]]]
160 is ignored), immediately followed by a
161 [CODE(char)[[[(]]]], it is not a [CODE(CSS)@en[[[URI]]]].
162 Stop these steps.
163 = ([DFN@en[WS]]) Skip any white space characters.
164 = If the next two characters are [CODE(char)[[[/*]]]],
165 == Skip any character until [CODE(char)[[[*/]]]] is found.
166 == If the substring [CODE(char)[[[*/]]]] is found,
167 === If the following characters are not a white space
168 character or [CODE(CSS)@en[[[/*]]]],
169 set [VAR@en[invalid]] as true. Don't consume these
170 characters yet.
171 === Go to the previous step in the overall steps (i.e. WS).
172 == Otherwise, i.e. if the next character is [CODE(char)@en[[[EOF]]]],
173 the [CODE(CSS)@en[[[URI]]]] is invalid. Stop the entire steps.
174 = If the next character is [CODE(char)[[["]]]],
175 == Appends any character until [CODE(char)[[["]]]]
176 to [VAR@en[u]], with any [CODE(CSS)@en[[[escape]]]] decoded and any
177 [CODE(CSS)@en[[[\]]]] followed by a [CODE(CSS)@en[[[newline]]]]
178 ignored.
179 == ([DFN@en[DWS]]) If the next character is a white space,
180 set [VAR@en[u]] as that character (!).
181 == If next few characters are white spaces, skip them.
182 == If the next character is [CODE(CSS)@en[[[/*]]]],
183 === Skip any character until [CODE(CSS)@en[[[*/]]]].
184 === If the next character is [CODE(char)@en[[[EOF]]]],
185 the [CODE(CSS)@en[[[URI]]]] is inlvaid. Stop the entire steps.
186 === Otherwise, go to the step named as DWS.
187 == If the next character is [CODE(CSS)@en[[[)]]]],
188 go to the step named as CP.
189 == Otherwise, set [VAR@en[invalid]] as true.
190 == Skip any character until [CODE(char)[[[)]]]]
191 (including [CODE(char)[[[)]]]] following [CODE(char)[\]]
192 but excluding [CODE(char)[[[)]]]] after [CODE(char)[[["]]]]
193 or [CODE(char)[[[']]]] but before [CODE(char)[[["]]]]
194 or [CODE(char)[[[']]]] matching it).
195 == If the next character is [CODE(char)[[[EOF]]]],
196 the [CODE(CSS)@en[[[URI]]]] is invalid. Stop the entire steps.
197 == Otherwise, go to step named as CP.
198 = If the next character is [CODE(char)[[[']]]],
199 == Appends any character until [CODE(char)[[[']]]]
200 to [VAR@en[u]], with any [CODE(CSS)@en[[[escape]]]] decoded and any
201 [CODE(CSS)@en[[[\]]]] followed by a [CODE(CSS)@en[[[newline]]]]
202 ignored.
203 == Go to the step named as DWS.
204 = ([DFN@en[CP]]) If the next character is [CODE(char)[[[)]]]],
205 == If [VAR@en[invalid]] is true, then the
206 [CODE(CSS)@en[[[URI]]]] is invalid. Stop the entire steps.
207 == Otherwise, return a [CODE(CSS)@en[[[URI]]]] whose
208 value is [VAR@en[u]]]].
209 = If the next character is [CODE(char)["]] or [CODE(char)[']],
210 set [VAR@en[invalid]] as true.
211 = If the next character is a white space,
212 == Skip any white space characters.
213 == If the next character is [CODE(CSS)@en[[[)]]]],
214 go to the previous step in the overall steps (i.e. CP).
215 == Otherwise, set [VAR@en[invalid]] as true.
216 = If the next character is [CODE(char)[[[\]]]],
217 -- decode a few character as [CODE(CSS)@en[[[escape]]]]
218 and append it to [VAR@en[u]], or skip [CODE(CSS)@en[[[whitespace]]]]
219 if it immediately follows the [CODE(char)[[[\]]]].
220 = If the next character is [CODE(char)@en[[[EOF]]]],
221 the [CODE(CSS)@en[[[URI]]]] is invalid. Stop the steps.
222 = Go to the step named as CP.
223
224 [18] [[Opera]] 9.00 seems to parse [CODE(CSS)@en[[[URI]]]]
225 as specified in [[CSS 2.1]].
226
227 ;; For example,
228 <http://suika.fam.cx/gate/2007/cssom/viewer?c=p%20%7B%0D%0A%20%20background-image%3A%20url(%20aa%3B%20font-size%3A%2012px%3B;h=;p=n;x=style-element>
229 results in a [CODE(CSS)@en[[[font-size]]]] property
230 specified as [CODE(CSS)@en[12[[px]]]].
231
232 However, it post-process [CODE(CSS)@en[[[URI]]]] values as:
233 - Drop any [CODE(URI)@en[[[#form:'':'']]#]]]] and following characters.
234 - Drop any preceding and following white space characters.
235 - Resolve a relative reference as an absolute URI.
236
237 [21] [[WinIE 6]] の実装は複雑怪奇です。
238 - [CODE(CSS)@en[[[url]]]] という[[関数名]]は、
239 -- [[大文字]]・[[小文字]]を区別しません。
240 -- [CODE(CSS)@en[[[escape]]]] を使うことができます。
241 --- しかし、 [CODE(CSS)@en[[[escape]]]] の最後の[[空白]]が[[改行]]であってはいけません。
242 --- 最後の[[空白]]の代わり、または直後に[[零]]個以上の[[注釈]]を挿入できます。
243 ([[CSSの字句化]>>7] を参照。)
244 - [[関数名]]と [CODE(CSS)@en[[[(]]]] の間に[[零]]個以上の[[注釈]]を挿入できます。
245 - [[括弧]]内では、
246 -- [Q[普通]]の[[文字列]]を使うことができます。
247 -- 評価した結果の[[文字列]]が[[空文字列]]なら、
248 [CODE(CSS)@en[[[URI]]]] ではなく、[[鍵語]]
249 [CODE(CSS)@en[[[none]]]] として扱われます。
250 -- [Q[普通]]の[[文字列]]の前後に[[零]]個以上の[[空白]]
251 ([[改行]]を含みます。) を挿入できます。
252 それらは無視されます。
253 -- 前後の[[空白]]の適当な位置に[[零]]個以上の[[注釈]]を挿入できます。
254 -- ただし、[Q[普通]]の[[文字列]]の直後の[[注釈]]のような[[文字列]]は、
255 [Q[普通]]の[[文字列]]の一部とみなされます。
256 -- [Q[普通]]の[[文字列]]の途中に適当に[[空白]]を挿入できます。
257 --- 最初''以外''の[Q[普通]]の[[文字列]]に
258 [CODE(CSS)@en[[[;]]]] や [CODE(CSS)@en[[[!]]]]
259 や [CODE(CSS)[[[{]]]] や [CODE(CSS)[[[}]]]] を挿入してはいけません。 ([CODE(CSS)@en[[[escape]]]]
260 しても駄目です。)
261 --- 最初''以外''の[Q[普通]]の[[文字列]]の直後の[[注釈]]のような[[文字列]]は、
262 [[注釈]]とみなされます。
263 -- [[注釈]]と [CODE(CSS)[[[\]]]] には複雑な規則があります:
264 --- OK なもの:
265 ---- <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url(a%20%5C%20b%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
266 ----
267 <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url(a%20b%20%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
268 ----
269 <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url%2F**%2F(a%20%5C%20b%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
270 ----
271 <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20u%5C72%2F**%2Fl%2F**%2F(a%20%5C%20b%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
272 ----
273 <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20u%5C72%2F**%2Fl%2F**%2F(a%20b%20%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
274 ----
275 <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url%2F**%2F(a%20%5Cb%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
276 --- NG なもの:
277 ----
278 <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url(a%20%2F**%2Fb%20%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
279 ----
280 <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url%2F**%2F(a%20b%20%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
281 ----
282 <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url%2F**%2F(a%20b%5C%20c)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
283 -- 最初の[Q[普通]]の[[文字列]]では [CODE(CSS)@en[[[\]]]] は使えますが、
284 --- 直後が[[空白]]の時は、
285 [CODE(CSS)@en[[[\]]]] 自体も値の一部とみなされます。
286 --- 後の前後の[[空白]]の除去により、
287 [CODE(CSS example)@en[url(a\ )]] は [CODE[a\]]
288 とみなされます。ちなみに [CODE(CSS example)@en[url(a\20)]]
289 は [CODE[a]] とみなされます。
290 -- 最初''以外''の[Q[普通]]の[[文字列]]では [CODE(CSS)@en[[[\]]]]
291 はほぼ使えますが、値の一部とみなされます。
292 --- 値の一部とみなされない場合もあります。例えば:
293 <http://suika.fam.cx/gate/2007/cssom/viewer.en.html?c=p%20%7B%0D%0A%20%20background-image%3A%20url(aa%5C%0D%0Ab%20%5C0041)%3B%0D%0A%7D%0D%0A;h=;p=n;x=style-element>
294 - [[注釈]]を閉じる [CODE(CSS)@en[[[*/]]]] がなければ、
295 入力の最後まで[[注釈]]の一部とみなされます。
296 - [[関数]]を閉じる [CODE(CSS)@en[[[)]]]] がなければ、
297 入力の最後まで[[関数]]の一部とみなされます。
298 - [CODE(char)[[["]]]] や [CODE(char)[[[']]]] や
299 [CODE(char)[[[(]]]] や [CODE(char)[[[)]]]] を含む場合: 複雑です。
300
301 [22]
302 [CITE@en[Re: '''['''css3-namespace''']''' url() syntax]] ([[fantasai]] 著, [CODE[2006-10-01 08:54:25 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-style/2006Oct/0006.html>
303 ([[名無しさん]])
304
305
306 [23]
307 [CITE@en['''['''css3-namespace''']''' url() syntax]] ([[Anne van Kesteren]] 著, [TIME[2008-02-07 07:13:26 +09:00]] 版) <http://lists.w3.org/Archives/Public/www-style/2008Feb/0059.html>
308 ([[名無しさん]])
309
310
311 [[#comment]]
312
313
314 * メモ
315
316 [24] [CITE@en[HTML5 Revision Tracker]]
317 ([TIME[2010-04-27 22:19:38 +09:00]] 版)
318 <http://html5.org/tools/web-apps-tracker?from=5064&to=5065>
319
320 [25] [CITE[IRC logs: freenode / #whatwg / 20100502]]
321 ([TIME[2010-05-30 23:27:52 +09:00]] 版)
322 <http://krijnhoetmer.nl/irc-logs/whatwg/20100502#l-105>
323
324 [26] [CITE[Basic Data Types and Interfaces – SVG 1.1 (Second Edition)]]
325 ( ([TIME[2011-08-10 12:35:27 +09:00]] 版))
326 <http://www.w3.org/TR/2011/REC-SVG11-20110816/types.html#DataTypeFuncIRI>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24