-
Notifications
You must be signed in to change notification settings - Fork 4
/
632.txt
624 lines (483 loc) · 30.9 KB
/
632.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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
* 仕様書
[REFS[
- [20] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name>
]REFS]
* [CODE(HTMLa)@en[target]] 属性 (HTML)
[4] [[HTML]] の
[DFN[[CODE(HTMLa)[target]] 属性]]は、
文書を開く[[フレーム]]の名前を指定します。
[16]
:状態:[[W3C]] [[勧告]] ('''[[非推奨]]''')、
[[WHATWG]] [[WD]] ('''[[非推奨]]''')
:[[要素型]]:
[CODE(HTMLe)@en[[QN[[[a]]] [http://www.w3.org/1999/xhtml]]]]、
[CODE(HTMLe)@en[[QN[[[area]]] [http://www.w3.org/1999/xhtml]]]]、
[CODE(HTMLe)@en[[QN[[[base]]] [http://www.w3.org/1999/xhtml]]]]、
[CODE(HTMLe)@en[[QN[[[button]]] [http://www.w3.org/1999/xhtml]]]]
([CODE(HTML)@en[[[submit]]]])、
[CODE(HTMLe)@en[[QN[[[form]]] [http://www.w3.org/1999/xhtml]]]]、
[CODE(HTMLe)@en[[QN[[[input]]] [http://www.w3.org/1999/xhtml]]]]
([CODE(HTMLe)@en[[[image]]]]、[CODE(HTML)@en[[[submit]]]])、
[CODE(HTMLe)@en[[QN[[[link]]] [http://www.w3.org/1999/xhtml]]]]
:[[属性名]]:[CODE(HTMLa)@en[[[target]]]]
([Q@en[target]] ([Q[対象]]) より)
:[[属性値]]:[CODE(SGML)@en[%[[FrameTarget]];]] (>>6)
:[[既定値]]:(>>7)
[5] 仕様書:
- [[HTML 4]]
-- 16.3 Specifying target frame information
<IW:HTML4:"present/frames.html#target-info">
- [[Web Forms 2.0]]
-- [CSECTION@en[2.17. Extensions to the submit buttons]]
<IW:WF2:"#extensions3">
** 代替
[10] この属性は'''非推奨'''です [SRC[HTML 4]]。
代わりに、[[スタイル・シート]]で指定できます。
[11] [[CSS3]] では、 [SAMP(CSS)[target]] 特性を使って指定できます。
[[#comment]]
** 属性値
[6] この属性の値は [CODE(SGML)[%[[FrameTarget]]]] です。
大文字・小文字は区別しません [SRC[HTML 4 16.3]]。
[[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。
[7] この属性は省略可能です。
[[#comment]]
** UA による利用
[12] リンクを辿る時に、リンク先資源を開くべきフレームは、
次のように決定するべきです。 [SRC[HTML 4 16.3.1]]
= まず、 [CODE(HTMLa)[target]] 属性を調べます。
指定されていれば、そのフレームで開きます。
= 自分に [CODE(HTMLa)[target]] 属性が無ければ、
[CODE(HTMLe)[base]] 要素の [CODE(HTMLa)[target]]
属性を調べます。指定されていれば、そのフレームで開きます。
= 自分にも [CODE(HTMLe)[base]] 要素にも [CODE(HTMLa)[target]]
属性がなければ、自分と同じフレームで開きます。
- なお、指定された名前のフレームがなければ、
新しい窓とフレームを作り、そこで開きます。
そのフレームの名前は指定された名前とします。
- UA は、利用者が [CODE(HTMLa)[target]] を上書きする仕組みを用意しても構いません。
[[#comment]]
** 他との関係
[8] この属性に指定するフレームの名前は、 (予約名以外は)
[CODE(HTMLe)[[[frame]]]] 要素や [CODE(HTMLe)[[[iframe]]]] 要素の
[CODE(HTMLa)[[[name]]]] 属性で定義します。
[[#comment]]
** 安全性
[14] これまでの実装の中には、 [CODE(HTMLa)[target]]
属性で指定されたフレーム名に素直に従い、
たとえ他の文書・他の鯖の文書であっても該当する名前のフレームがあればそこにリンク先文書を開くものがありました。
このような実装方法は、閲覧者を不可解に思わせるだけでなく、
悪意を持つ人が他のウェブ・サイトのフレームに、
あたかもその一部であるかのように自分の文書を含めることが可能であり、
問題があると現在では考えられています。 (多くのブラウザはフレーム内の文書の
URI を常時表示してはいませんから、普通の閲覧者は気付きにくいのです。)
[15] フレーム内の文書から他者の資源にリンクする際に、
[CODE(HTMLa)[target]] を使って、あるいは使わないで、
自分のフレームの中にその資源を表示させるのは良くないことだと考える人もいます。
特に他者の資源であると明記しない場合には >>14 と同じような問題となり得ますし、
意図的に他者の資源を自分のものと見せかけると法的な責任を問われる虞もあります。
* 閲覧文脈の選択
[18] [DFN[[RUBYB[[[閲覧文脈名から閲覧文脈を選ぶ規則]]]@en[the rules for choosing a browsing context given a browsing context name]]]]とは、
次のようにすることです [SRC[>>20]]。
[FIG(steps)[
= [46] [[閲覧文脈名]]が[[空文字列]]なら、
== [57] 現在の[[閲覧文脈]]を選択します。
= [55] [[閲覧文脈名]]が [CODE(HTML)@en[[[_self]]]] なら、
== [58] 現在の[[閲覧文脈]]を選択します。
== [59] [[明示的自己ナビゲーション上書き]]フラグを設定します。
= [60] [[閲覧文脈名]]が [CODE(HTML)@en[[[_parent]]]] なら、
== [62] [[親閲覧文脈]] (なければ現在の[[閲覧文脈]]) を選択します。
= [63] [[閲覧文脈名]]が [CODE(HTML)@en[[[_top]]]] なら、
== [64] [[最上位閲覧文脈]] (なければ現在の[[閲覧文脈]]) を選択します。
= [84]
[FIG(list)[
- [85] [[閲覧文脈名]]が [CODE(HTML)@en[[[_blank]]]] ''以外''で、
- [86] 同名の[[閲覧文脈]]が存在し、
- [87] 現在の[[閲覧文脈]]と [[familiar with]] 関係にあり、
- [88] 両者に十分関係性があると[[利用者エージェント]]が判断するなら、
]FIG]
== [89] その[[閲覧文脈]]を選択します。
==- [90] 複数候補があれば、何らかの一貫した方法
(開かれたのが最直近、[[焦点]]が当たったのが最直近、最も関係が深い、など)
でいずれかを選ぶ[['''べきです''']]。
== [91] 選択したのが現在の[[閲覧文脈]]なら、
=== [92] [[明示的自己ナビゲーション上書き]]フラグを設定します。
= [93] [[allowed to show a popup]] で''ない''場合で、
[[ポップアップ]]しないよう[[利用者エージェント]]が設定されている場合、
== [94] どの[[閲覧文脈]]も選択しません。
== [95] [[ポップアップ]]がブロックされたことを[[利用者]]に通知して構いません。
= [96] 現在の[[閲覧文脈]]の[[活性文書]]の [[active sandboxing flag set]]
に [[sandboxed auxiliary navigation browsing context flag]] が設定されている場合、
== [98] [[利用者]]が現在の[[閲覧文脈]]の[[最上位閲覧文脈]]を使うことを特に指示した場合 ([[利用者エージェント]]がそのような方法を提供している場合)、
=== [100] 現在の[[閲覧文脈]]の[[最上位閲覧文脈]]を選択します。
== [115] [[利用者]]が新しい[[閲覧文脈]]を使うことを特に指示した場合 ([[利用者エージェント]]がそのような方法を提供している場合)、
=== [116] [[閲覧文脈を作成]]し、選択します。
=== [117] 現在の[[閲覧文脈]]の[[活性文書]]の [[active sandboxing flag set]]
の [[sandboxed navigation browsing context flag]] が設定されている場合、
==== [118] 新しい[[閲覧文脈]]の [[popup sandboxing flag set]]
を、現在の[[閲覧文脈]]の[[活性文書]]の [[active sandboxing flag set]]
の複製とします。
==== [119] 新しい[[閲覧文脈]]の [[one permitted sandboxed navigator]] を、
現在の[[閲覧文脈]]とします。
== [97] それ以外なら、
=== [99] どの[[閲覧文脈]]も選択しません。
= [101] 今回新しい[[閲覧文脈]]を作成するよう[[利用者]]に指示された場合、
== [102] [[閲覧文脈の作成]]を行います。
=== [120] これが[[ハイパーリンクをたどる]]手順からの呼び出しであり、
[[リンク型]] [CODE(HTML)@en[[[noreferrer]]]] が指定されていた場合、
==== [121] 通常の[[最上位閲覧文脈]]とします。
==== [104] [[start for session storage]] とします。
=== [122] そうでない場合、
==== [123] [[補助閲覧文脈]]とします。
==== [124] [[opener browsing context]] を、現在の[[閲覧文脈]]とします。
== [103] その[[閲覧文脈名]]を、指定された[[閲覧文脈名]]が
[CODE(HTML)@en[[[_blank]]]] なら[[空文字列]]、それ以外なら指定された値に設定します。
== [111] 現在の[[閲覧文脈]]の[[活性文書]]の [[active sandboxing flag set]]
の [[sandboxed navigation browsing context flag]] が設定されている場合、
=== [112] 新しい[[閲覧文脈]]の [[popup sandboxing flag set]]
を、現在の[[閲覧文脈]]の[[活性文書]]の [[active sandboxing flag set]]
の複製とします。
=== [113] 新しい[[閲覧文脈]]の [[one permitted sandboxed navigator]] を、
現在の[[閲覧文脈]]とします。
= [106] 今回現在の[[閲覧文脈]]を再利用するよう[[利用者]]に指示された場合、
== [107] 現在の[[閲覧文脈]]を選択します。
= [108] 今回[[閲覧文脈]]を選ばないよう[[利用者]]に指示された場合、
== [109] どの[[閲覧文脈]]も選びません。
]FIG]
[23] この規則は、[[ハイパーリンクをたどる]]際や[[フォームの提出]]、
[CODE(JS)@en[[[window.open]]]] において、指定された[[閲覧文脈名]]またはキーワードから[[閲覧文脈]]を決定するために使われます。
[105] 大文字と小文字については明記されていませんが、[[妥当な閲覧文脈名またはキーワード]]の定義より、
キーワードは[[ASCII大文字・小文字不区別]]、それ以外は区別ありで比較するものと思われます。
[127] 関連性の決定 (>>88) をどのように行うのか、明記はされていません。
[129] 他の[[最上位閲覧文脈]]内の[[入れ子閲覧文脈]]は、関連性が低いかもしれません。
[128] [CODE(HTMLa)@en[[[sandbox]]]] からの[[ポップアップ]] (>>96) では[[砂箱化フラグ集合]]が引き継がれることになっていますが、
既存の[[閲覧文脈]]を再利用する場合適用されないことになります。
危険かもしれないので、関連しないと判断するべきなのかもしれません。
[125] [[利用者エージェント]]は、[[リンク]]を開く際、[[閲覧文脈]]を特に選ばないか、
新しい[[閲覧文脈]] ([[窓]]や[[タブ]]) を開くべきか、現在の[[閲覧文脈]]を使うか、
既存の他の[[閲覧文脈]]を使うか、といった選択肢を提供するのが一般的です。
[[リンク]]以外の [[navigate]] ([[フォームの提出]]など) でも同様の選択肢が提供されることがあります。
[110] 新しい[[閲覧文脈]]を開く場面で常に現在の[[閲覧文脈]]を再利用するように[[利用者]]が指示できるようにすることが、
[[利用者エージェント]]は[RUBYB[推奨]@en[encourage]]されています [SRC[>>20]]。
[114] [[ポップアップ]]も参照。
[126] こうした選択は、[[文脈メニュー]]等の異なる選択肢として表示されることもありますし、
[KBD[[[Ctrl]]]] キーの押下などで区別することもあります。
* 歴史
** 誕生
[24]
[CODE(HTMLa)@en[[[target]]]] [[属性]]は、
[[フレーム]]機能の一部として [[Netscape Navigator]] 2
で導入されました。
@@ どの[[要素]]に? [[Windows]] 版以外では?
[40]
[CITE[New HTML 3.0 Proposals]] ([CODE[2007-02-26 21:59:55 +09:00]] 版) <http://wp.netscape.com/assist/net_sites/new_html3_prop.html#Target>
([[名無しさん]])
[41]
[CITE[How to target a link to a window]] ([CODE[2007-02-28 00:30:29 +09:00]] 版) <http://web.archive.org/web/19970613222251/www82.netscape.com/eng/mozilla/2.0/relnotes/demo/target.html>
** [CODE(DOMi)@en[Window-Target:]] ヘッダー (HTTP)
[2] HTML で言うところの base 要素の target 属性的な HTTP 頭欄。
Netscape Navigator 2.0 以降の独自拡張。
[EG[
[3]
[PRE(HTTP code)[
Window-Target: _top
]PRE]
]EG]
** 標準化
[25] [[HTML 4]] で、[[非推奨]]ながら
[CODE(HTMLe)@en[[[a]]]],
[CODE(HTMLe)@en[[[area]]]],
[CODE(HTMLe)@en[[[base]]]],
[CODE(HTMLe)@en[[[form]]]],
[CODE(HTMLe)@en[[[link]]]]
に [CODE(HTMLa)@en[[[target]]]] が追加されました。
[19] HTML 4.0 仕様書本文の [CODE(HTMLe)[[[frame]]]] 要素と [CODE(HTMLe)[[[iframe]]]]
要素の定義には誤って [CODE(HTMLa)[target]] 属性の定義への参照が含まれていました。
- [CSECTION@en[A.1.2 Errors that were corrected]]
<IW:HTML4:"appendix/changes.html#h-A.1.2">
[26] [[XHTML m12n]] では、
[[対象属性]][[モジュール]]という独立した[[モジュール]]が定義されました。
[27] [[XHTML 1.1]] [[1e]]
は[[対象属性]][[モジュール]]を組み込みませんでした。
[[#comment]]
*** 暗黒時代
[28] [CODE(HTMLa)@en[[[target]]]] が[[非推奨]]となり、
[[厳密DTD]] や [[XHTML 1.1]] に含まれませんでしたが、
既に下火になっていた[[フレーム]]はともかく、
[CODE(HTML)@en[[CODE(HTMLa)@en[[[target]]]]=[[_blank]]]]
への需要は高く、形式的な[[妥当性]]を得つつも
[CODE(HTMLa)@en[[[target]]]] を使いたいという要求が少なくありませんでした。
[29] [[妥当性]]と [CODE(HTMLa)@en[[[target]]]]
の両方を求める人たちは、 [[JavaScript]] と [[DOM]]
で、 [CODE(DOMa)@en[[[target]]]] や
[CODE(DOMm)@en[[[open]]]] などを用いて
[CODE(HTMLa)@en[[[target]]]] を実現しようとするなどの本末転倒な[RUBY[回避法] [ごまかし]]に走り出しました。
[30] >>29 のような手法は、本来[[宣言的]]に記述できるものをあえてわかりにくくすることで、
[[アクセス可能性]]や[[利用可能性]]に劣るといわれています。
[31] このような背景から、 [CODE(HTMLa)@en[[[target]]]]
の[Q[復活]]を求める意見もあります。
*** 再評価
[75] [CODE(HTMLa)@en[[[target]]]] は [[HTML]] に不適当との考えから90年代末に排除の方向へと進みましたが、
代替がなかったために >>28 のように非本質的な書き換えが横行するなど、事態はむしろ悪化していました。
意味的潔癖性を追求するよりはむしろ実利も含めて総合的に判断するべきとの考えが支持されるようになり、
2000年代の終わりには一部の原理主義者を除いて完全に容認する方向へ進んでいます。
**** XHTML2
[32]
[[XHTML 2.0]] では、 [[XFrames]] との関係もあって、
[CODE(HTMLa)@en[[[target]]]] が[Q[復活]]しました。
[73] [[XHTML2]] の最初の[[作業原案]]で、[[ハイパーテキスト属性集成]]に属し、
実質すべての [[XHTML2]] [[要素]]で利用できるものとして規定されるようになりました。
;; [CITE@en[- XHTML Attribute Collections]] ([TIME[2002-08-06 00:20:43 +09:00]] 版) <http://www.w3.org/TR/2002/WD-xhtml2-20020805/mod-attribute-collections.html#adef_attribute-collections_target>
[71] [CITE@en[target attribute]] ([[Shane McCarron]] 著, [TIME[2009-01-25 04:02:09 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-xhtml2/2009Jan/0077.html>
>@target is defined in the
hypertext attributes module. I believe this should be moved into a
target attribute module so that it can be more easily omitted from
languages that do not want to support it.
**** XHTML1
[34] [[XHTML 1.1]] には元々 [CODE(HTMLa)@en[[[target]]]] [[属性]]は含まれていませんでしたが、
旧 [[HTML WG]] (後の [[XHTML2 WG]]) は [[XHTML 1.1 2e]] [[WD]]
で[[対象属性モジュール]]を「復活」させました。
;; ただし、旧 [[HTML WG]] の仕様書は例によって杜撰で、追加されたのは [[DTD]] 実装だけで
[[XML Schema]] 実装や[[文書型]]の定義には含まれていませんでした。
[35]
更に [[XHTML Basic 1.1]] [[WD]]
でも[[対象属性モジュール]]が「復活」させられました。
[36] しかし、 [[XHTML Basic]] の主要な適用対象である[[携帯電話]]の業界は、
[CODE(HTMLa)@en[[[target]]]] [[属性]]は[[携帯電話]]の
[[Webブラウザ]]では実装できない機能だとして >>35 に反発しました。
[74]
結局 [[XHTML2 WG]] (旧 [[HTML WG]]) は [[XHTML Basic 1.1]]
が[[勧告]]に至るまでに次のような注記が追加されることで反発を抑えました。
- [CODE(HTMLa)@en[[[target]]]] [[属性]]は[[フレーム]]、複数[[窓]]、[[タブ]]など[RUBYB[[[外部環境]]]@en[external environment]]に束縛するための一般的なフックとして設計されている
-- 外部環境が利用できない[[利用者エージェント]]では [CODE(HTMLa)@en[[[target]]]] [[属性]]を無視してもよい
-- 束縛された外部環境がある時は [CODE(HTMLa)@en[[[target]]]] [[属性]]の適合性要件は各外部環境で定義される
- [[著者]]は[[利用者エージェント]]の [CODE(HTMLa)@en[[[target]]]] [[属性]]に注意する必要がある
-- 外部環境の束縛の有無、利用可能な資源の制約、アプリケーションや利用者の設定、実装依存の設計方針などに依存する
-- 外部環境適合性が存在しないときは [CODE(HTMLa)@en[[[target]]]] [[属性]]に依存しないことを推奨する
- 実装依存の [CODE(HTMLa)@en[[[target]]]] [[属性]]の用法は[[相互運用性]]の妨げとなりかねないことに注意されたい
;; [CITE[XHTML™ Basic 1.1]] ([TIME[2008-07-27 02:02:25 +09:00]] 版) <http://www.w3.org/TR/2008/REC-xhtml-basic-20080729/#s_xhtmlmodules>
[76] >>74 の注記は一見普通のことを言っているように見えますが、よくよく考えてみるとまったく無茶苦茶です。
- そもそもこの記述は [[XHTML Basic]] にまったく依存していないのだから、
[[XHTML m12n]] あるいは [[HTML4]] の改訂によって追加するべき注意なのではないか
-- 実際、後に [[XHTML 1.2]] [[ED]] にもコピペされている
- 「一般的なフックとして設計されている」という記述は事実なのかどうか
-- 少なくても [[HTML4]] にはそんなことは書かれていない
- 適合性に関する記述が「Note」として記述されているが、仕様書の作法としてありなのかどうか
-- たしかに Note は informative との記述はどこにもないが、 normative とも明記されていないし、
Note は informative だといっている仕様書もあるから、少なくても confusing ではある
- [[適合性]]が[[利用者エージェント]]に依存するなんて態度でいいのかどうか
- [[著者]]にとっても[[実装者]]にとっても「注意しろ」としか書かれていない仕様書に一体なんの意味があるのか
- そもそも [[XHTML1]] シリーズは[[クライアント]]の環境に合わせた[[プロファイル]]を作ることによって
[[device independence]] を実現するのが方針ではなかったのか
-- そのためにわざわざ [CODE(HTMLa)@en[[[target]]]] [[属性]]が単独の [[XHTMLモジュール]]となっているのに、
それを敢えて追加して「無視してもよい」などと注記する意味はどこにあるのか
**** HTML5
[17]
[[Web Forms 2.0]] で、
[CODE(HTMLe)@en[[[input]]]]
([CODE(HTML)@en[[[image]]]]、[CODE(HTML)@en[[[submit]]]])、
[CODE(HTMLe)@en[[[button]]]] ([CODE(HTML)@en[[[submit]]]])
に追加されました。特に[[非推奨]]との記述はありません。
[[XHTMLモジュール]]定義 ([[参考]]) では、
多[[窓]]や[[フレーム]]に対応しているときに
[CODE(HTMLa)@en[[[target]]]] [[属性]]が定義されるとされています。
[33]
[[Ian Hickson]] は、2007年2月、 [[Web Applications 1.0]]
への [CODE(HTMLa)@en[[[target]]]] の追加について、
[CODE(HTMLe)@en[[[iframe]]]] 対応のために必要との見解を
#whatwg で示しています。
それによると、存在しない[[フレーム名]]を指定するのは[[不適合]]、
存在する[[フレーム名]]を指定するのは[[適合]]とするつもりだそうです。
** 例
[9] 単純な例 [SRC[HTML 4 16.3]]
フレーム文書:
[PRE(HTML)[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<HTML>
<HEAD>
<TITLE>A frameset document</TITLE>
</HEAD>
<FRAMESET rows="50%,50%">
<FRAME name="fixed" src="init_fixed.html">
<FRAME name="dynamic" src="init_dynamic.html">
</FRAMESET>
</HTML>
]PRE]
[SAMP(URI)[init_dynamic.html]]:
[PRE(HTML)[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>A document with anchors with specific targets</TITLE>
</HEAD>
<BODY>
...beginning of the document...
<P>Now you may advance to
<A href="slide2.html" target="dynamic">slide 2.</A>
...more document...
<P>You're doing great. Now on to
<A href="slide3.html" target="dynamic">slide 3.</A>
</BODY>
</HTML>
]PRE]
ここで、 [SAMP(URI)[init_dynamic.html]] 内の2つのリンクのいずれを辿っても、
[SAMP(HTML)[fixed]] フレームは不変で、 [SAMP(HTML)[dynamic]]
フレームだけが変わります。
[13] [CODE(HTMLe)[base]] [CODE(HTMLa)[target]] の例
[SRC[HTML 4 16.3.1]]
[PRE(HTML)[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>A document with BASE with a specific target</TITLE>
<BASE href="http://www.mycom.com/Slides" target="dynamic">
</HEAD>
<BODY>
...beginning of the document...
<P>Now you may advance to <A href="slide2.html">slide 2.</A>
...more document...
<P>You're doing great. Now on to
<A href="slide3.html">slide 3.</A>
</BODY>
</HTML>
]PRE]
>>9 ではそれぞれの [CODE(HTMLe)[a]] に [CODE(HTMLa)[target]]
を指定しましたが、その文書のリンクの [CODE(HTMLa)[target]]
がすべて同じなら、 [CODE(HTMLe)[base]] でまとめて指定しておくのが便利です。
[[#comment]]
** メモ
[1]
[PRE[
::frame ("frame-name") a {
target: "another-frame-name";
}
]PRE]
みたいな感じのことができると、
[CODE(HTMLa)[target]] 属性もいらないし、
特定の frameset だけに依存せずに style sheet を書けるよね。
最近の CSS3 draft はどうなっているのだろう?
[21]
携帯電話業界から [[XHTML Basic 1.1]] に [CODE(HTMLa)@en[[[target]]]] を追加することへの反対が結構強いね。。。
([[名無しさん]] [WEAK[2006-08-12 15:04:21 +00:00]])
[22]
[CITE@ja[target属性の利便性 (kuruman.org > 駄的HTML改善計画)]] ([CODE[2007-02-18 00:31:14 +09:00]] 版)
<http://kuruman.org/dateki/target>
[37]
[CITE@ja[別窓指定の理想論 (kuruman.org > Kuruman Memo)]] ([CODE[2007-02-23 02:50:28 +09:00]] 版) <http://kuruman.org/diary/2007/02/23/target-blank>
([[名無しさん]] [WEAK[2007-02-23 16:03:46 +00:00]])
[38]
[CITE@ja[target="_blank"は多数派? (kuruman.org > Kuruman Memo)]] ([CODE[2006-09-09 01:47:03 +09:00]] 版) <http://kuruman.org/diary/2007/02/24/is-target-blank-popular>
([[名無しさん]] [WEAK[2007-02-25 02:10:35 +00:00]])
[39]
[CITE[別サイトへの target="_blank" は優しいか]]
<http://pc10.2ch.net/test/read.cgi/hp/1136738511/>
おもしろい統計がでている
<http://pc10.2ch.net/test/read.cgi/hp/1136738511/834>
([[名無しさん]] [WEAK[2007-02-25 02:11:46 +00:00]])
[42]
[CITE@ja[target="_blank"によるリスクの軽減:メモランダム]] ([CODE[2007-02-22 23:32:51 +09:00]] 版) <http://elastic965.80code.com/blog/2007/02/target_blank>
([[名無しさん]] [WEAK[2007-03-08 14:00:59 +00:00]])
[43]
[CITE[まじかんと雑記: Re: target="_blank"によるリスクの軽減]] ([CODE[2007-03-08 23:00:43 +09:00]] 版) <http://magicant.txt-nifty.com/main/2007/02/re_target_blank_e80b.html>
([[名無しさん]] [WEAK[2007-03-08 14:02:18 +00:00]])
[44]
[CITE@ja-JP[無爲徒食日記 二千七年二月]] ([[眞名垣 郁夫]] 著, [CODE[2007-02-28 15:45:43 +09:00]] 版) <http://lan.rgr.jp/diary/2007/02#Twentyfive-One>
([[名無しさん]] [WEAK[2007-03-08 14:03:53 +00:00]])
[45]
<http://suika.fam.cx/~wakaba/-temp/test/dom/window/name/target-name-1.html>
[CODE(HTMLa)@en[[[target]]]] で新しい[[窓]]の[[名前]]を
([CODE(HTML)@en[newwindow]]) 指定し、
その[[リンク]]をたどって新たな[[閲覧文脈]]を作成します。
新しい[[閲覧文脈]]の[[名前]] ([CODE(JS)@en[[[window]].[[name]]]]) は
[CODE(HTML)@en[newwindow]] となるのが自然な動作です。
[[WinIE 6]] ([[Windows XP]] [[SP2]])、[[Opera]] 9
は実際そのように動作します。
[CODE(JS)@en[[[window]].[[name]]]] は
[CODE(HTML)@en[newwindow]] になりますし、
その中の [CODE(HTMLa)@en[[[target]]]] が
[CODE(HTML)@en[newwindow]] な[[リンク]]をたどると同じ[[窓]]で開かれます。
しかし、 [[Firefox]] 1.5 は、新しい窓を新しいタブとして開く設定になっていると、
[[名前]]を持たない ([CODE(JS)@en[[[window]].[[name]]]]
が[[空文字列]]の) [[閲覧文脈]]が作られてしまいます。
新しい窓として開く設定になっていれば [[WinIE]]
や [[Opera]] と同じく [CODE(JS)@en[[[window]].[[name]]]]
は [CODE(HTML)@en[newwindow]] になります。
([[名無しさん]])
[47]
[CITE[XHTML 1.1 Modularization Anchor Element Target Attribute - www.TexaStar.com]] ([[Texastar.com WebMaster@TexaStar.com]] 著, [CODE[2007-08-14 21:17:48 +09:00]] 版) <http://www.texastar.com/tips/2004/target_blank.shtml>
([[名無しさん]])
[48]
[CITE@en[Sparanoid » Blog » XHTML 1.1 plus Target 1.0 and other modularizations]] ([[Sparanoid]] 著, [CODE[2007-08-14 21:24:36 +09:00]] 版) <http://sparanoid.com/blog/xhtml-11-plus-target-10-and-other-modularizations/>
([[名無しさん]])
[49]
[CITE[torresburriel.com » Blog Archive » Añadir el módulo target a XHTML 1.1]] ([CODE[2007-08-14 21:25:50 +09:00]] 版) <http://www.torresburriel.com/weblog/2004/04/19/anadir-el-modulo-target-a-xhtml-11/>
([[名無しさん]])
[50]
[CITE@pl[Łukasz Aranowski - strona domowa (Aster, Astercity, MP3, stacje, Kolejarz, Microsoft, XHTML, zdjęcia i inne...)]] ([[Lukasz Aranowski]] 著, [CODE[2007-08-14 21:28:31 +09:00]] 版) <http://www.mendel.pl/index.php?co=xhtml>
([[名無しさん]])
[51]
[CITE@pl[Do podstrony - Odsyłacze - Kurs HTML]] ([[Sławomir Kokłowski]] 著, [CODE[2007-08-12 00:17:26 +09:00]] 版) <http://www.kurshtml.boo.pl/html/do_podstrony,odsylacze.html>
([[名無しさん]])
[52]
[CITE[net2ftp forum / Doctype]] ([CODE[2007-08-14 21:41:03 +09:00]] 版) <http://www.net2ftp.org/forums/viewtopic.php?pid=6679>
([[名無しさん]])
[53]
[CITE@en[Standards-Compliant New Windows | Accessify]] ([[Ian Lloyd, Accessify '''['''http://www.accessify.com/''']''']] 著, [CODE[2007-08-17 23:17:09 +09:00]] 版) <http://www.accessify.com/features/tutorials/new-windows/>
([[名無しさん]])
[54]
[CITE@en[XHTML 1.1 plus Target 1.0 DTD — Information]] ([CODE[2007-09-24 16:17:49 +09:00]] 版) <http://suika.fam.cx/gate/2007/schema/schema/dd9db9d3e91e5444c7741e0d0e3943b2/prop.html>
([[名無しさん]])
[56]
[CITE[Thermaglaze Double Glazing]] ([CODE[2008-03-01 12:20:27 +09:00]] 版) <http://www.thermaglaze.com/>
([CODE(MIME)@en[[[text/html]]]])
[PRE(HTML bad example code)[
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
[ <!ATTLIST a target CDATA #IMPLIED> ]>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
]PRE]
([[名無しさん]])
[61]
[CITE[The target="" attribute]] ([[Ian Hickson <ian@...>]] 著, [CODE[2008-04-21 05:21:56 +09:00]] 版) <http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/13793>
([[名無しさん]])
[65]
[CITE[Lachy’s Log » Blog Archive » Conforming target Attribute]] ([CODE[2008-07-26 22:40:57 +09:00]] 版) <http://lachy.id.au/log/2008/04/target-attribute>
([[名無しさん]])
[66]
[CITE@ja[冬様もすなる☆日記というもの (2008年10月)]] ([[わかば]] 著, [TIME[2008-10-17 18:50:52 +09:00]] 版) <http://suika.fam.cx/~wakaba/d/d200810#d17-2>
[67] 類似の属性に、 [[SMIL]] の [CODE(XMLa)@en[[[show]]]]
[[属性]]や [[XLink]] の [CODE(XMLa)@en[xlink:[[show]]]] [[属性]]、
[[SVG]] の [CODE(XMLa)@en[[[target]]]] [[属性]]、
[[OpenDocument]] の [CODE(XMLa)@en[meta:[[target-frame-name]]]] [[属性]]があります。
[[HTTP]] には [CODE(HTTP)@en[[[Window-Target]]:]] [[頭欄]]があります。
その他 [[API]] 等で同様の役割を果たす[[引数]]等もあります。
詳しくは [CODE@en[[[FrameTarget]]]] の項を参照してください。
[68] [CITE@en[MAMA: Frames - Opera Developer Community]] ([TIME[2008-11-25 20:37:51 +09:00]] 版) <http://dev.opera.com/articles/view/mama-frames/#target>
[69] [CITE[The SMIL 3.0 Linking Modules]] ([TIME[2008-12-02 00:45:09 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SMIL3-20081201/smil-extended-linking.html#adef-target>
[70] [CITE[Linking – SVG Tiny 1.2]] ([TIME[2008-12-20 02:31:29 +09:00]] 版) <http://www.w3.org/TR/2008/REC-SVGTiny12-20081222/linking.html#AElementTargetAttribute>
[72] [CODE(HTMLa)@en[[[target]]]] は (「[[戻る]]」や「[[進む]]」や[[ハイパーリンク]]による前後の方向への「[[水平]]」な移動に対して)
「垂直ナビゲーション」を記述するものだと理解する考え方もあります。
[77] [CITE@en-GB-x-Hixie[Web Forms 2.0]]
([TIME[2009-01-05 20:07:15 +09:00]] 版)
<http://www.whatwg.org/specs/web-forms/current-work/#xhtml-module-def>
[78] [CITE@en[XFrames]]
( ([TIME[2010-12-17 00:45:08 +09:00]] 版))
<http://www.w3.org/TR/2010/NOTE-xframes-20101216/#s_links>
[79] >>78 によると、 [CODE(XMLa)@en[[[target]]]] が明示されていない場合、
その[[フレーム]]に [CODE(XMLa)@en[[[xml:id]]]] があればその[[フレーム]]、
なければ全体 ([CODE(HTML)@en[[[_top]]]]? その [[XFrames]] [[文書]]の最上位?)
が指定されたような動きになるようです。
[80] [CITE@en[WICD Core 1.0]]
( ([TIME[2010-08-17 16:51:00 +09:00]] 版))
<http://www.w3.org/TR/WICD/#child-documents>
[81] [CITE@en[Touch Events]]
( ([TIME[2013-10-12 10:35:42 +09:00]] 版))
<https://dvcs.w3.org/hg/webevents/raw-file/v1/touchevents.html#widl-Touch-target>
[82] [CITE[New HTML 3.0 Proposals]]
( ([TIME[2014-04-07 08:07:57 +09:00]] 版))
<http://web.archive.org/web/19970806103517/http://www31.netscape.com/assist/net_sites/new_html3_prop.html>
[83] [CITE[Welcome to Netscape Navigator Version 2.0]]
( ([TIME[2014-04-07 08:48:39 +09:00]] 版))
<http://web.archive.org/web/20030202175634/http://wp.netscape.com/eng/mozilla/2.0/relnotes/windows-2.0.html#Images>