[37] 閲覧文脈は、閲覧文脈名を持つことができます。 初期状態では閲覧文脈名はありません。 >>36
[51] 閲覧文脈名は、閲覧文脈包含子の要素の name
内容属性により決まります。
[50] 閲覧文脈名は、履歴の探索により、活性文書に合わせて変化します。
[65] 妥当な閲覧文脈名は、
_
で始まらない、空でない文字列です >>36。
[67] 妥当な閲覧文脈名またはキーワードは、
妥当な閲覧文脈名か、 ASCII大文字・小文字不区別で
_blank
, _self
, _parent
,
_top
のいずれかと一致するものです
>>36。
[73] それ以外の _
で始まる値は、将来の拡張のために予約されています >>36。
target
属性や name
属性に指定することは禁止されています。しかし指定した場合は、
通常の名前のように扱われます (将来拡張されると異なる動作になるかもしれないため、
禁止されています)。name
属性) に _blank
などのキーワードを指定することは禁止されています。
指定してもそのまま閲覧文脈名として使われますが、 target
属性でそれを使うと特別な意味で解釈されるため、その閲覧文脈を指すために使うことはできません。[76] 歴史的には、他に _content
, _media
,
_main
,
_next
, _search
, _replace
といったキーワードがWebブラウザー依存の機能 (二次的閲覧文脈等) のため、
または HTML 以外の Web 関連仕様により用いられていました。
[78] window.name
IDL属性は閲覧文脈名を表します。
[70] 閲覧文脈名は、 Window
オブジェクトの名前付き特性による他の
Window
へのアクセスのために使うことができます。
[79] name
内容属性によってその要素の入れ子閲覧文脈の閲覧文脈名を指定できます。
[80] target
内容属性や window.open
の第2引数によって navigate する閲覧文脈を指定できます。
Window
インターフェイス name
属性[34] Window
インターフェイスの
name
IDL属性の取得器は、
次のようにしなければなりません >>33。
[99]
Window
インターフェイスの
name
IDL属性の設定器は、
指定値について、
次のようにしなければなりません
>>33。
name
属性[52] HTML の frame
要素および
iframe
要素、
embed
要素や
object
要素の
name
内容属性は、
要素の入れ子閲覧文脈に名前をつけるために使われます >>57, >>63。
object
要素はフォーム制御子として機能することもありますが、
name
属性は制御子名を指定するものではないようです。
ただしプラグインが name
属性値をフォームデータ集合上の名前として使うことを妨げるものでもないようです。[58] iframe
要素 >>57 や
object
要素 >>63 の name
属性値は、妥当な閲覧文脈名でなければなりません。
[59] iframe
要素や frame
要素、 object
要素から閲覧文脈の作成が行われる際に、
name
属性があれば閲覧文脈名としなければなりません
>>57, >>63, >>71。なければ、空文字列を閲覧文脈名としなければなりません >>57, >>63, >>71。
[62] HTMLIFrameElement
インターフェイスや
HTMLIFrameElement
インターフェイスの
IDL属性 name
は、 name
内容属性を反映しなければなりません >>61, >>64。
DOMString
として反映します。
[49] HTMLEmbedElement
インターフェイスや
HTMLObjectElement
インターフェイスの廃止状態の
IDL属性 name
は、name
内容属性を反映しなければなりません >>48, >>66。
DOMString
として反映します。
[55] name
属性値は、 DOM で
HTMLCollection
や getElementsByName
を通じて要素にアクセスするために使うことができます。
そもそもフレーム名ってどんな文字が使えるんですか。
最初の文字は、 [A-Za-z] または "_" (予約名) で、2文字目以降は よく分かりません。 SGML (DTD) 的には CDATA です。
気持ち的には _?[A-Za-z]+ なんですかね? ま、現実には何でもあり なんでしょーが。
HTML4 によると大文字・小文字は区別されません。
Netscape の仕様に拠ると先頭文字は DIGIT でもいい(良かった)模様。 それ以外の文字から始まる時は無視するようです。 特殊名で未定義のときも無視。
[40] http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/target.html
[41] How to target a link to a window ( 版) http://web.archive.org/web/19970613222251/www82.netscape.com/eng/mozilla/2.0/relnotes/demo/target.html
[42] Web Applications 1.0 r7828 Try to clarify browsing context rules ( ( 版)) http://html5.org/tools/web-apps-tracker?from=7827&to=7828
[43] OASIS Open Document Format for Office Applications (OpenDocument) Version 1.2 - Part 1: OpenDocument Schema ( 版) http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#a19_380office_target-frame
[44] Jumping out of the window - how to get rid of frames (Jahn Rentmeister, rentmei@uni-muenster.de 著, 版) http://web.archive.org/web/19990203145328/http://www.uni-muenster.de/WiWi/home/rentmei/html/frames.html
[45] [whatwg] Specify href target with HTTP headers ( ( 版)) http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-June/036334.html
[1] HTML 4 などの DTD において、 %FrameTarget;
は対象フレーム名を表します。
a 要素などの target 属性の値が %FrameTarget;
として定義されています。また、 frame 要素や iframe
要素の name 属性の値も、 (DTD 上は直接 CDATA になっていますが)
%FrameTarget;
と考えて良いでしょう。
[53] 仕様書:
[92]
HTML 4 仕様書本文では、 iframe
要素型の定義で、
name
属性を独自の定義と frame
要素型での定義の参照の両方としています。
おそらくいずれかが間違いなのでしょうが、幸い、
どちらの name
の定義もまったく同じ内容ですから、
問題にはなりません。
[93]
この属性は非推奨です
XHTML 1.0 4.10 (参考)。
代わりに id
属性を使うことができます。
[94] XHTML 1.0 では将来の版での削除が予告されており、
実際に XHTML 1.1 には name
は含まれていません。
[54] この属性の値は CDATA
です。
特に名前に制限は無いみたいです HTML 4 16.2.2, 16.5。
大文字・小文字は区別されません HTML 4 16.2.2, 16.5。
ただし、名前を参照する側の target
属性の値は %FrameTarget
ですから、
それ以外にすると使い辛いでしょう。
[2] DTD においては細かい制限を記述できないため、 %FrameTarget;
は CDATA
として定義されていますが、実際にはその構文には緩やかな制限があります。
です。なお、大文字・小文字は区別されません。
[6] HTML 4 に従うなら、この構文に合致しない名前は無視します (should)。 実際の UA の挙動は、どんな名前でも受け入れるようです。 漢字や仮名を使ったフレーム名の HTML 文書も実在していたりします。 a 要素の name 属性同様, なんでもありの世界と考えた方が良いでしょう。
[9] フレーム名は HTTP 頭欄 Window-Target の値でもありますから、 HTTP で安全に転送できる ASCII の94個の図形文字の範囲内にした方が良いでしょう。
[11] >>5 Netscape の元の仕様 (>>10) では、最初の文字に数字も許しています。
target
引数が存在します。既定値は _self
です。2007-01-25 02:12:49 +09:00
版)
http://www.w3.org/TR/2007/REC-webcgm20-20070130/WebCGM20-IC.html#webcgm_3_1_2_22006-11-04 01:53:46 +09:00
版)
http://docs.oasis-open.org/webcgm/v2.0/OS/WebCGM20-IC.html#webcgm_3_1_2_2[19]
WebCGM は HTML 4 の予約名に加えて _replace
(埋込み CGM 画像内のリンクをたどった時、その画像を置き換える) を定義しています。
[23] SVG は WebCGM と同じものを採用しています。 ただし枠名は XML の名前であるとしています。
%FrameTarget | 説明 | 状態 | 出典 |
ALPHA | フレーム名による指定 | W3C 勧告 | [HTML 4], [WebCGM] |
XML 名前 | フレーム名による指定 | W3C 勧告 | [SVG] |
_blank | 新しい無名の窓 | W3C 勧告 | [Netscape], [HTML 4], [WebCGM], [OpenDocument], [OOXML] |
_content | 主表示領域 >>8 | 非標準 | Mozilla |
_main | 主表示領域 >>8 | 非標準 | WinIE |
_media | 媒体バー | ECMA 規格 | WinIE 6+, OOXML |
_next | |||
_search | 検索用表示領域 | ECMA 規格 | Mozilla, WinIE 5+, OOXML |
_self | 同じフレーム | W3C 勧告 | [Netscape], [HTML 4], [WebCGM], [OpenDocument], [OOXML] |
_parent | 親フレーム | W3C 勧告 | [Netscape], [HTML 4], [WebCGM], [OpenDocument], [OOXML] |
_replace | 同じ領域 >>19 | W3C 勧告 | [WebCGM] |
_top | 同じ窓全体 | W3C 勧告 | [Netscape], [HTML 4], [WebCGM], [OpenDocument], [OOXML] |
[7] _parent
と _top
は「親」が存在しなければ
_self
と同じ意味になります。
HTML 4 は _parent
は親 frameset としていますが、
IFRAME
要素の内部で使われた場合はどうなのでしょう。
WinIE でも Mozilla でも、親文書の窓になりました。
HTML 4 の意図は分かりませんが、実態だけ考えれば FRAMESET
に限定したのは間違いです。
Netscape の元の仕様 (>>10) も似たような表現ですから、そのままもってきて修正し忘れたのかもしれません。
[8] Mozilla 拡張の _content
は、基本的には
_self
同様に機能するようですが、例えば Sidebar
に表示している頁で使うと通常のブラウザの部分に読み込ませることが出来ます。
WinIE は同様のものとして _main
を使っています。
しかしこれはエクスプローラバーでは使えても、通常のブラウザの部分では使えないようです。
Moz も IE も、相手のものは未対応らしく、新窓で開きます。
_main
(や他の _
で始まる名前) を使っているところもあります。 >>8 はそれへの対処なんでしょうか。 (M$ がそうするとは考えにくいのですが。)[16] 数字のフレーム名ってよく見かけます。そういうのが既定値になっている変な authoring tool でもあるのでしょうか。 (名無しさん 2004-03-29 12:40:40 +00:00)
13-15 大文字の予約名の実例、はじめてみました。なんだか新鮮。 (名無しさん 2004-06-11 11:09:30 +00:00)
[25] Target Attribute Values (Lachlan Hunt <lachlan.hunt@...> 著, 版) http://permalink.gmane.org/gmane.org.w3c.whatwg.discuss/10387 (名無しさん 2007-04-28 04:10:21 +00:00)
[26] [OOXML] は OOXML の VML 用 target
属性。
[27] [OpenDocument] は OpenDocument の meta:target-frame-name
属性。
[28] OpenDocument も OOXML も、閲覧文脈名の文字の種類に制限はないみたいです
(_
も含め、何も言及がありません)。
[18] Bug 105693 - W3C HTML 4.01 spec recommends we ignore non-alpha target http://bugzilla.mozilla.org/show_bug.cgi?id=105693
数字で始まるフレーム名や下線ではじまるフレーム名について。
[24] So, You Want A New Browser Window, Huh? (Joe Burns 著、2005年7月現在) http://www.htmlgoodies.com/tutorials/getting_started/article.php/3479481 (他の内容から90年代後半に書かれたと推測)
<A HREF="http://www.site.com/page.html" TARGET="resource window"> Text Text Text</A>
[31] Window Object 1.0 ( ( 版)) http://www.w3.org/TR/Window/#embedding
[100]
Bug 444222 – window.name/.status can be used as an XSS attack vector (2008-09-15 22:34:02 +09:00
版) https://bugzilla.mozilla.org/show_bug.cgi?id=444222
[32] Web Applications 1.0 r8483 window.name should be the empty string when the name isn't set. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8482&to=8483
[29] [whatwg] Reserved browsing context names ( ( 版)) http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-November/029030.html
[30] [whatwg] Reserved browsing context names ( ( 版)) http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-February/030414.html
[81] Reduce the number of Window objects exposed on the Window object ( (annevk著, )) https://github.com/whatwg/html/commit/ae055fbc49e6b57bbfdc69537af67e8971871c06
[82] RE: Changing window.name behavior (Crispin Cowan著, ) https://lists.w3.org/Archives/Public/public-webappsec/2016Jul/0007.html
[83] Editorial: clean up "traverse the history" (annevk著, ) https://github.com/whatwg/html/commit/b9c90431ad4c8aa583aee1691a6a1bd355b68b53
[84] 444222 – window.name can be used as an XSS attack vector () https://bugzilla.mozilla.org/show_bug.cgi?id=444222
[85] Re: Changing window.name behavior (Mike West著, ) https://lists.w3.org/Archives/Public/public-webappsec/2016Jul/0031.html
[86] Drop the name propagation for the object element's name attribute (foolip著, ) https://github.com/whatwg/html/commit/1d196b35eba203d5f7561c6b2458b990ff0e28fb
[87] Re: Changing window.name behavior (John Wilander著, ) https://lists.w3.org/Archives/Public/public-webappsec/2016Dec/0002.html
[88] Add <base target="x" /> to CSP · Issue #186 · w3c/webappsec-csp () https://github.com/w3c/webappsec-csp/issues/186
[89] Consider not setting browsing context name when noopener/noreferrer are used · Issue #4314 · whatwg/html () https://github.com/whatwg/html/issues/4314
[90] Fix Window's close(d) members (annevk著, ) https://github.com/whatwg/html/commit/37b1ce5ed31725fa7b3c64e27e3cc10aa15a791f
[91] Make window.name deal with lack of browsing context (annevk著, ) https://github.com/whatwg/html/commit/b8c084e9d5461b858180e7f80ad6ca19c7963723
[103] Make window.name deal with lack of browsing context by annevk · Pull Request #4366 · whatwg/html () https://github.com/whatwg/html/pull/4366
[104] Ignore changes to name attributes (annevk著, ) https://github.com/whatwg/html/commit/4fe2d539bd09809b86028df35f6b2c8caa4bc716
[105] Ignore changes to name attributes by annevk · Pull Request #4367 · whatwg/html () https://github.com/whatwg/html/pull/4367
[106] Ignore changes to name attributes by annevk · Pull Request #4367 · whatwg/html () https://github.com/whatwg/html/pull/4367
[107] Editorial: nested browsing context is a member, not a type (annevk, , ) https://github.com/whatwg/html/commit/6b737bbc428facf34ec3728c0912cf9e172d0ea4
name
属性で要求されます。