* name 属性 (DOM Attr 界面) [1] 読取専用属性 [CODE[[VAR(DOMi)[[[Attr]]]].[CODE(DOMa)[name]]]] ([[DOM 1]]) は、[[属性]]の名前です。 [2] この属性は[[名前空間]]を知りませんから、 名前空間を使った文書では使わない方がいいでしょう。 [CODE(DOMi)[[[Node]]]] 界面から継承している [CODE(DOMa)[[[localName]]]] 属性とかが使えそうです。 [10] 仕様書: - [DOM1] - [DOM2] ''Document Object Model Core'' [97] [[DOM水準3]]によれば、 [CODE(DOMa)@en[[[localName]]]] が [CODE(IDL)@en[[[null]]]] の場合 [CODE(DOMa)@en[[[name]]]] は[[修飾名]]です。 ([[名無しさん]]) [[#comment]] * 終点アンカー系 name 属性 [[#comment]] ** name 属性と id 属性 [8] 「噂の ID 問題」についてのメモは[CODE(WikiPage)[[[噂のID問題]]]]に移動しました。 [[#comment]] ** a 要素 name 属性 (HTML, XHTML 1) [19] [[HTML]] の [CODE(HTMLe)[[[a]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、 そのアンカーに名前をつけます。 (そうすることで他の[[連結]]の終点にできるようになります。) [64] 仕様書: - [[HTML 4]] -- [CODE(HTMLe)[a]] 要素 [CODE(HTMLa)[name]] 属性 -- [CITE[References to HTML elements from a script]] - [[XHTML 1.0]] -- [CSECTION@en[4.10. The elements with 'id' and 'name' attributes]] ([[参考]]) *** 代替 [82] この[[属性]]は'''[[非推奨]]'''です [SRC[[[XHTML 1.0]] 4.10 ([[参考]])]]。 代わりに [CODE(HTMLa)@en[[[id]]]] [[属性]]を使うことができます。 ;; ただし、 [CODE(HTMLa)@en[[[name]]]] と [CODE(HTMLa)@en[[[id]]]] では、 [[属性値]]に課された制約が異なります。 [[噂の[CODE(XML)@en[ID]]問題]]の項などをご覧下さい。 [83] [[XHTML 1.0]] では将来の版での削除が予告されており、 実際に [[XHTML 1.1]] には [CODE(HTMLa)@en[[[name]]]] は含まれていません。 [[#comment]] *** 属性値 [20] この属性の値は固有アンカー名です。 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。この属性の値は大文字・小文字を区別します。 この属性の値の適用範囲はその文書です。つまり文書内で固有でなければなりません。 この属性は [CODE(HTMLa)[[[id]]]] 属性と名前空間を共有します。 つまり他の [CODE(HTMLa)[id]] 属性と同じ値ではいけません。 [21] この属性は省略可能です。 [[#comment]] *** 他との関係 [22] [CODE(HTMLa)[name]] 属性は古くから使われてきましたが、 現在は [CODE(SGML)[[[ID]]]] である [CODE(HTMLa)[[[id]]]] 属性を代わりに使うのが好ましいとされています。 [CODE(HTMLa)[id]] 属性は HTML のほとんどの[[要素型]]に定義されていますから、 わざわざ [CODE(HTMLe)[a]] 要素としなくても、 どんな要素でも終点アンカーにできます。 [CODE(HTMLa)[name]] と [CODE(HTMLa)[id]] との関係は、 [CODE(HTMLa)[[[id]]]]] 属性の説明および[[噂のID問題]]の説明を参照してください。 [23] [CODE(HTMLa)[name]] 属性によって定義されたアンカー名は、 [[URI参照]]で[[素片識別子]]として使用することができます。 例えば [SAMP(URI)[a.html]] の中の [CODE(HTMLa)[name]] [CODE[ANCHOR]] は、 URI 参照で [SAMP(URI)[a.html#ANCHOR]] とあらわせます。 (この際、 URI 参照としてそのまま使えない文字を [[URI符号化]]しなければならないことに注意してください。) [65] スクリプトから名前によって要素を識別する方法について、 HTML 4 は、 [CODE(HTMLa)[name]] 属性と [CODE(HTMLa)[id]] 属性の両方が指定されている場合には [CODE(HTMLa)[name]] 属性を優先させるべきであるとしています。 [SRC[HTML 4 18.2.2.3]] ここで、 [CODE(HTMLa)[name]] 属性の指定される要素型は明記されていませんが、リンク先によれば [CODE(HTMLe)[a]] 要素の [CODE(HTMLa)[name]] 属性を指すようです。 [[#comment]] *** 実装 [24] HTML 4 仕様書によれば、 [SAMP(HTML)[]] のように[[空要素]]だと古い [[UA]] の中にはアンカーを見つけられないことがあるそうです。 [[#comment]] *** メモ [3] HTML の [CODE(HTMLe)[[[a]]]] 要素型の [CODE(HTMLa)[name]] 属性の値、理想的には [CODE(SGML)[[[ID]]]] 或いは [CODE(SGML)[[[NMTOKEN]]]] なのですが、実世界では今でも稀に、 [SAMP(HTML)[#fragment]] のように [CODE(char)[#]] で始まる値を指定する人がいるみたいです。 [4] もちろん >>3 は間違いで、多分同じページ内の始点リンクの [CODE(HTMLa)[[[href]]]] 属性で [[URI参照]]として [SAMP(URI)[#fragment]] と書くのと混同してるんでしょう。 (本当に >>3 の例のを参照したいのなら、 [CODE(HTMLa)[href]] は [SAMP(URI)[#%23fragment]] としなければなりません。) [5] {>>3,>>4 の不正な例} は [[Mozilla]] ではうまく動きません [WEAK[(正しいほうは動きます)]] が、 [[WinIE 6]] では 「意図したように」動きます。もちろん WinIE の解釈が間違っています。 (余計なおせっかい。) [16] >>3 その[Q[人]]の中に [[M$]] が含まれていたりするから笑える。 ([[名無しさん]] [WEAK[2004-06-07 23:48:26 +00:00]]) [18] [[Dan Connolly]] なんかはとっとと [CODE(HTMLa)[name]] を [CODE(SGML)[[[ID]]]] にしたがっていたのに、とうとう最後までかないませんでしたねぇ。 >>3 のような人達のせいで。 [96] [[HTML 4]] の > Note. The same conversion based on UTF-8 should be applied to values of the [CODE(HTMLa)@en[[[name]]]] attribute for the [CODE(HTMLe)@en[A]] element. の意味は謎だけど、 [CITE@en[XSLT 2.0 and XQuery 1.0 Serialization]] のように [[URI]] として扱う[[属性]]に含めるのは違うのではないか? ([[名無しさん]]) [[#comment]] ** form 要素 name 属性 (HTML, XHTML 1) [17] [[HTML]] の [CODE(HTMLe)[[[form]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、その要素に名前を付けるために使うことができます。 [58] 仕様書: - [[HTML 4.01]] ([[Web Forms 1.0]]) -- [CODE(HTMLe)[form]] 要素 [CODE(HTMLa)[name]] 属性 -- [CITE[HTML 4 Changes]] - [[XHTML 1.0]] -- [CSECTION@en[4.10. The elements with 'id' and 'name' attributes]] ([[参考]]) [69] HTML 4 DTD [[注釈]] (参考) には [Q[name of form for scripting]] (スクリプト用フォーム名) と説明があります。 *** 代替 [59] この属性は、'''後方互換性'''のために追加されました。 [[応用]]は要素の識別には [CODE(HTMLa)[[[id]]]] 属性を使うべきです [SRC[HTML 4 17.3]]。 [84] この[[属性]]は'''[[非推奨]]'''です [SRC[[[XHTML 1.0]] 4.10 ([[参考]])]]。 代わりに [CODE(HTMLa)@en[[[id]]]] [[属性]]を使うことができます。 ;; ただし、 [CODE(HTMLa)@en[[[name]]]] と [CODE(HTMLa)@en[[[id]]]] では、 [[属性値]]に課された制約が異なります。 [[噂の[CODE(XML)@en[ID]]問題]]の項などをご覧下さい。 [85] [[XHTML 1.0]] では将来の版での削除が予告されており、 実際に [[XHTML 1.1]] には [CODE(HTMLa)@en[[[name]]]] は含まれていません。 [[#comment]] *** 属性値 [60] この属性の値は [CODE(SGML)[[[CDATA]]]] です。 大文字・小文字は区別されません。 [SRC[HTML 4.01 17.3]] [61] この属性は省略可能です。 [[#comment]] *** 他との関係 [62] [CODE(HTMLa)[name]] 属性の代わりに [CODE(HTMLa)[[[id]]]] 属性を使うべきです [SRC[HTML 4.01 17.3]]。 [63] この属性によって付けた名前を使って[[スクリプト]]や[[スタイル・シート]]から参照できます。 [73] [[DOM水準0]] では、 [SAMP(JS)[[CODE(DOMa)[[[document]]]].[CODE(DOMa)[[[form]]]].[VAR[name]]]] で名前により [CODE(HTMLe)[[[form]]]] 要素に対応する物体を取得できます。 ([[名無しさん]] [sage]) [[#comment]] *** 歴史 [57] この属性は後方互換性のため [[HTML 4.01]] で追加されました [SRC[HTML 4.01 A.1.1.12]]。 [98] [[XHTML 1.0]] は [[FE]] でも [[SE]] でも[[移行用DTD]]と[[フレーム集合DTD]]に [CODE(XML)@en[[[NMTOKEN]]]] 型として含まれているのですが、 なぜか[[厳密DTD]]にはありません。 本文には他の[[終点アンカー]]系 [CODE(HTMLa)@en[[[name]]]] [[属性]]と共に[[非推奨]]とあります。 ([[名無しさん]]) [[#comment]] *** メモ [[#comment]] ** img 要素 name 属性 (HTML, XHTML 1) [25] [[HTML]] の [CODE(HTMLe)[[[img]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、 要素に名前をつけて[[スクリプト]]や[[スタイル・シート]]で参照できるようにすることができます。 [26] 仕様書: - [[HTML 4.01]] -- [CODE(HTMLe)[img]] 要素 [CODE(HTMLa)[name]] 属性 -- [CITE[HTML 4 Changes]] - [[XHTML 1.0]] -- [CSECTION@en[4.10. The elements with 'id' and 'name' attributes]] ([[参考]]) [67] HTML 4 DTD の[[注釈]] (参考) には [Q[name of image for scripting]] と書かれています。 *** 代替 [27] この属性は後方互換性のために含められているもので、 著者は [CODE(HTMLa)[[[id]]]] 属性を使用するべきです。 [SRC[HTML 4.01]] [86] この[[属性]]は'''[[非推奨]]'''です [SRC[[[XHTML 1.0]] 4.10 ([[参考]])]]。 代わりに [CODE(HTMLa)@en[[[id]]]] [[属性]]を使うことができます。 ;; ただし、 [CODE(HTMLa)@en[[[name]]]] と [CODE(HTMLa)@en[[[id]]]] では、 [[属性値]]に課された制約が異なります。 [[噂の[CODE(XML)@en[ID]]問題]]の項などをご覧下さい。 [87] [[XHTML 1.0]] では将来の版での削除が予告されており、 実際に [[XHTML 1.1]] には [CODE(HTMLa)@en[[[name]]]] は含まれていません。 [[#comment]] *** 属性値 [28] この属性の値は [CODE(SGML)[[[CDATA]]]] です。 HTML 4 仕様書にはそれ以上の制限は明記されていません。 値の大文字と小文字は''区別されません''。 [30] 属性値の名前空間は不明です。 12.2.3 Anchors with the id attribute の記述が [CODE(HTMLe)[[[a]]]] 要素以外にも適用されるのだとすれば、 [CODE(HTMLe)[[[id]]]] と同じ名前空間に属することになります。 その節の後の方の記述によれば、 [CODE(HTMLa)[id]] 要素も指定する時は同じ値でなければなりません。 [29] この属性は省略可能です。 [[#comment]] *** 歴史 [66] この属性は HTML 4.01 で後方互換性のために追加されました [SRC[HTML 4.01 A.1.1.9]]。 [[#comment]] *** 他との関係 [41] [CODE(HTMLa)[[[id]]]] 属性も併用するときは、 [CODE(HTMLa)[name]] と同じ値でなければなりません ([SUP[ [HTML 4, [[噂のID問題]>>26] ] ]])。 この場合、使用できる文字は制限されます。 特に、 [CODE(SGML)[[[NAMECASE]] [[GENERAL]] YES]] のとき、 [CODE(HTMLa)[name]] は大文字でなければならなくなります。 [[#comment]] *** メモ [[#comment]] ** applet 要素 name 属性 (HTML, XHTML 1) [35] [[HTML]] の [CODE(HTMLe)[[[applet]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、 applet 実現値の名前を指定します。 この名前を使って applet は相互に参照・通信できます。 [36] 仕様書: [[HTML 4]] - [[XHTML 1.0]] -- [CSECTION@en[4.10. The elements with 'id' and 'name' attributes]] ([[参考]]) *** 代替 [37] この属性は HTML 4 で要素ごと'''非推奨'''とされています。 代わりに [CODE(HTMLe)[[[object]]]] 要素型と [CODE(HTMLa)[[[id]]]] 属性を利用できます。 (ただし、完全に等価ではないので注意してください。) - [[XHTML 1.0]] -- [CSECTION@en[4.10. The elements with 'id' and 'name' attributes]] ([[参考]]) [88] この[[属性]]は'''[[非推奨]]'''です [SRC[[[XHTML 1.0]] 4.10 ([[参考]])]]。 代わりに [CODE(HTMLa)@en[[[id]]]] [[属性]]を使うことができます。 ;; ただし、 [CODE(HTMLa)@en[[[name]]]] と [CODE(HTMLa)@en[[[id]]]] では、 [[属性値]]に課された制約が異なります。 [[噂の[CODE(XML)@en[ID]]問題]]の項などをご覧下さい。 [89] [[XHTML 1.0]] では将来の版での削除が予告されており、 実際に [[XHTML 1.1]] には [CODE(HTMLa)@en[[[name]]]] は含まれていません。 [[#comment]] *** 属性値 [38] この属性の値は [CODE(SGML)[[[CDATA]]]] です。 それ以上の制限は特にないものと思われます。 大文字・小文字は区別されます。 [39] この属性は省略可能です。 [[#comment]] *** 他との関係 [40] [CODE(HTMLa)[[[id]]]] 属性も併用するときは、 [CODE(HTMLa)[name]] と同じ値でなければなりません ([SUP[ [HTML 4, [[噂のID問題]>>26] ] ]])。 この場合、使用できる文字は制限されます。 特に、 [CODE(SGML)[[[NAMECASE]] [[GENERAL]] YES]] のとき、 [CODE(HTMLa)[name]] は大文字でなければならなくなります。 [CODE(HTMLa)[id]] 属性を使うときは必然的に文書内で固有でなければならなくなりますが、 そうでない場合 HTML 4 的にどうなのかは不明です。 [[#comment]] *** メモ [68] HTML 4 DTD の[[注釈]] (参考) には [Q[allows applets to find each other]] と書かれています。 [[#comment]] ** map 要素 name 属性 [42] [[HTML]] の [CODE(HTMLe)[[[map]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、[[クライアント側画像写像]]の名前を割当てます。 [43] 仕様書: [[HTML 4]] - [[XHTML 1.0]] -- [CSECTION@en[4.10. The elements with 'id' and 'name' attributes]] ([[参考]]) [48] HTML 4 仕様書には [CODE(HTMLe)[map]] 要素独自の [CODE(HTMLa)[name]] 属性の定義の他に[Q[他で定義されている属性]]として form control 系 [CODE(HTMLa)[name]] 属性への参照があるのですが、これって間違いでしょうか。 [[#comment]] *** 代替 [90] この[[属性]]は'''[[非推奨]]'''です [SRC[[[XHTML 1.0]] 4.10 ([[参考]])]]。 代わりに [CODE(HTMLa)@en[[[id]]]] [[属性]]を使うことができます。 ;; ただし、 [CODE(HTMLa)@en[[[name]]]] と [CODE(HTMLa)@en[[[id]]]] では、 [[属性値]]に課された制約が異なります。 [[噂の[CODE(XML)@en[ID]]問題]]の項などをご覧下さい。 [91] [[XHTML 1.0]] では将来の版での削除が予告されており、 実際に [[XHTML 1.1]] には [CODE(HTMLa)@en[[[name]]]] は含まれていません。 @@ [[HTML 5]] で復活 [[#comment]] *** 属性値 [44] この属性の値は [CODE(SGML)[[[CDATA]]]] です。 大文字・小文字は区別しません。 [46] この属性は必須です。 [[#comment]] *** 他との関係 [45] [CODE(HTMLa)[[[id]]]] 属性を使うときは、同じ値でなければなりません。 ([CODE(HTMLa)[name]] は大文字・小文字を区別しないようなので、 大文字・小文字まで一致していなくてもよいと思われます。 (もちろん、一致させた方が混乱の元にならなくて良いでしょう。)) [[噂のID問題]]も参照してください。 [47] この属性の値は[[素片識別子]]として使用できるようです。 ですから、 (HTML 4 仕様書には言及がないようですが、) [CODE(HTMLa)[id]] 属性と併用しないときであっても、 [CODE(HTMLa)[id]] と名前空間を共有していると考えるのが妥当でしょう。 [[#comment]] *** メモ [[#comment]] ** メモ [70] HTML 4 ではどの要素型の [CODE(HTMLa)[name]] 属性が[[素片識別子]]として使えるのか曖昧ですが、 [[XHTML 1.0]] によると [[HTML 4]] では [CODE(HTMLe)[[[a]]]], [CODE(HTMLe)[[[applet]]]], [CODE(HTMLe)[[[form]]]], [CODE(HTMLe)[[[frame]]]], [CODE(HTMLe)[[[iframe]]]], [CODE(HTMLe)[[[img]]]], [CODE(HTMLe)[[[map]]]] で[[素片識別子]]として使えるそうです [SRC[XHTML 1.0 4.10]]。 [[XHTML 1.0]] ではこれらの [CODE(HTMLa)[name]] 属性は[[非推奨]]とされ、 将来の削除が予告されています [SRC[XHTML 1.0 4.10, C.8]]。 出典: - [[XHTML 1.0]] -- [CSECTION[4.10. The elements with 'id' and 'name' attributes]] (参考) -- [CSECTION[C.8. Fragment Identifiers]] (参考) [72] また、 [[XHTML 1.0]] では [CODE(HTMLa)[name]] 属性の型が [CODE(XML)[[[NMTOKEN]]]] に変更されています。更に本文の記述 (参考) によると実際には制約が更に強く、 [[XML]] の[[名前]]でなければならないようです [SRC[XHTML 1.0 C.8]]。 [[HTML 4]] との互換性を維持したい場合には [CODE(regex)['''['''A-Za-z''']''''''['''A-Za-z0-9:_.-''']'''*]] な値にするのがよいともされています [SRC[XHTML 1.0 C.8]]。 [[名前空間妥当]]であるためには [CODE(char)[:]] を使うのもまずいでしょう。 [71] [CODE(HTMLe)[[[frame]]]] と [CODE(HTMLe)[[[iframe]]]] は [CODE(HTMLa)[[[target]]]] 属性の規定も修正しない限り削除しちゃうとまずいと思いますが... [99] >>12 なぜか、[[移行用DTD]]だけは [CODE(HTMLe)@en[[[map]]]] [CODE(HTMLa)@en[[[name]]]] が [[XHTML 1.0]] でも [CODE(XML)@en[[[CDATA]]]] のままです。 ([[名無しさん]]) [[#comment]] * フォーム制御子名系 name 属性 [1] [[HTML]] の[[フォーム]]の[[制御子]]の名前は、 [DFN[[CODE(HTMLa)[name]] 属性]]で指定します。 該当する要素型: [CODE(HTMLe)[[[input]]]] 要素型 (HTML, XHTML 1), [CODE(HTMLe)[[[button]]]] 要素型 (HTML, XHTML 1), [CODE(HTMLe)[[[select]]]] 要素型 (HTML, XHTML 1), [CODE(HTMLe)[[[textarea]]]] 要素型 (HTML, XHTML 1), [CODE(HTMLe)[[[object]]]] 要素型 (HTML, XHTML 1) [6] 仕様書: - [[HTML 4]] ([[Web Forms 1.0]]) -- [CODE(HTMLe)[input]] 要素 [CODE(HTMLa)[name]] 属性 -- [CODE(HTMLe)[button]] 要素 [CODE(HTMLa)[name]] 属性 -- [CODE(HTMLe)[select]] 要素 [CODE(HTMLa)[name]] 属性 -- [CODE(HTMLe)[textarea]] 要素 [CODE(HTMLa)[name]] 属性 -- [CODE(HTMLe)[object]] 要素の定義では [CODE(HTMLe)[input]] 要素の [CODE(HTMLa)[name]] 属性が参照されています。 - [[Web Forms 2.0]] -- [CSECTION@en[2.5. Extensions to existing attributes]] [7] 詳しくは、[[制御子名]]の説明をご覧ください。 * Content-Disposition: 欄 name 引数 (MIME/HTTP) [14] [[HTML]] の [CODE(HTMLe)[[[form]]]] 要素からデータが送信された時に control の [CODE(HTMLa)[[[name]]]] 属性の値が指定されるのが [CODE(MIME)[[[Content-Disposition]]]] 欄の [DFN[[CODE(MIME)[name]] 引数]]です。 [CODE(MIME)[[[[form-data]]]] 配置型と共に使います。 [15] [[HTML 4]] 仕様書によると、 [CODE(MIME)[name]] 属性値に [CODE(charset)[[[US-ASCII]]]] 以外の文字が使われる場合、 [[RFC 2045]] の方法で符号化しないといけないそうです。 RFC 2045 探しても方法なんてのってないとおもうんですが・・・。 どうするんでしょうか。 () まさか、 [[RFC 2047]] の方法 = [CODE(ABNF)[[[encoded-word]]]] の間違いでしょうか。そうすると MIME の規定と噛み合わなくなりますが・・・。 [11] 現実の実装は、多くが、[[実体本体]]と同じ [[charset]] で生で符号化するようです。 一部実装では [CODE(HTML)[[[_charset_]]]] hack が使えます。 [[#comment]] * param 要素 name 属性 (HTML, XHTML 1) [31] [[HTML]] の [CODE(HTMLe)[[[param]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、 実行時引数の名前を定義します。 [32] 仕様書: [[HTML 4]] [[#comment]] ** 属性値 [33] この属性の値は [CODE(SGML)[[[CDATA]]]] です。 任意の名前を指定できます。この名前は物体の側が知っているものと仮定されます。 [HTML 4] (知らなかった場合の挙動は UA・物体の実装依存となるのでしょう。) 大文字・小文字の区別も物体の実装に依存します。 [HTML 4] [34] この属性は必須です。 [[#comment]] ** メモ [[#comment]] * meta 要素 name 属性 (HTML, XHTML 1) [49] [[HTML]] の [CODE(HTMLe)[[[meta]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、 メタ情報の名前を指定します。 [50] 仕様書: - [[HTML 2.0]]: [[RFC 1866]] 5.2.5. Associated Meta-information: META [[#comment]] ** 属性値 [51] この属性は省略可能です。その場合 [CODE(HTMLa)[[[http-equiv]]]] 属性の値がメタ情報の名前となります。 (いずれかの属性が必須です。) [[#comment]] ** memo [[#comment]] * frame 要素、iframe 要素 name 属性 (HTML, XHTML 1) [52] [[HTML]] の [CODE(HTMLe)[[[frame]]]] 要素および [CODE(HTMLe)[[[iframe]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、枠に名前を割当てます。 [53] 仕様書: - [[HTML 4]] -- [CODE(HTMLe)[frame]] 要素 [CODE(HTMLa)[name]] 属性 -- [CODE(HTMLe)[iframe]] 要素 [CODE(HTMLa)[name]] 属性 - [[XHTML 1.0]] -- [CSECTION@en[4.10. The elements with 'id' and 'name' attributes]] ([[参考]]) [92] HTML 4 仕様書本文では、 [CODE(HTMLe)[iframe]] 要素型の定義で、 [CODE(HTMLa)[name]] 属性を独自の定義と [CODE(HTMLe)[frame]] 要素型での定義の参照の両方としています。 おそらくいずれかが間違いなのでしょうが、幸い、 どちらの [CODE(HTMLa)[name]] の定義もまったく同じ内容ですから、 問題にはなりません。 *** 代替 [93] この[[属性]]は'''[[非推奨]]'''です [SRC[[[XHTML 1.0]] 4.10 ([[参考]])]]。 代わりに [CODE(HTMLa)@en[[[id]]]] [[属性]]を使うことができます。 ;; ただし、 [CODE(HTMLa)@en[[[name]]]] と [CODE(HTMLa)@en[[[id]]]] では、 [[属性値]]に課された制約が異なります。 [[噂の[CODE(XML)@en[ID]]問題]]の項などをご覧下さい。 [94] [[XHTML 1.0]] では将来の版での削除が予告されており、 実際に [[XHTML 1.1]] には [CODE(HTMLa)@en[[[name]]]] は含まれていません。 [[#comment]] ** 属性値 [54] この属性の値は [CODE(SGML)[[[CDATA]]]] です。 特に名前に制限は無いみたいです [SRC[HTML 4 16.2.2, 16.5]]。 大文字・小文字は区別されません [SRC[HTML 4 16.2.2, 16.5]]。 ただし、名前を参照する側の [CODE(HTMLa)[[[target]]]] 属性の値は [CODE(SGML)[%[[FrameTarget]]]] ですから、 それ以外にすると使い辛いでしょう。 [55] また、多くの高機能 [[UA]] では [[DOM]] を介して名前でフレームに access できますが、その時、 [[ECMAScript]] 束縛のように簡略記法が用意されていることもあります (例えば、 [SAMP(JS)[window.[VAR[frame1]]]] で [SAMP[frame1]] に access できるかもしれません)。そのような利用も考慮するなら、 一般的なスクリプト言語で[[名前]]として使える構文に従った名前を付けるのが得策かもしれません。 [56] この属性は省略可能です。 [[#comment]] ** 他との関係 [57] [CODE(HTMLe)[frame]] の [CODE(HTMLa)[name]] は、 [CODE(HTMLe)[[[e]]]] 要素の [CODE(HTMLa)[[[target]]]] 属性や [[HTTP]] の [CODE(HTTP)[[[Window-Target]]:]] 欄などからフレームを参照するために使われます。 また、 [[DOM]] などでフレームを参照するために使えることがあります。 [[#comment]] ** メモ [[#comment]] * [CODE(HTMLe)@en[div]] 要素, [CODE(HTMLe)@en[span]] 要素の [CODE(HTMLa)@en[name]] 属性 [74] [CODE(HTMLe)@en[div]] 要素や [CODE(HTMLe)@en[span]] 要素で [DFN[[CODE(HTMLa)@en[name]] 属性]]を使っている人がいます。 標準の [[HTML]] には含まれていませんし、 [[WinIE]] や [[Netscape Navigator]] で独自に実装されたという話も今のところ聞きません。 捏造している[[タグ辞典]]類も他のこの手のものに比べると皆無といっていいくらい。 なのになぜかそれなりの用例が出てきます。 [75] [CITE[まぐまぐ - ホームページ楽々講座 -]] (2005年6月、[[西久保希光]]著) ([[HTML]] [[文書]]の例の中で) > [CODE(HTML bad example code)@en[]]
]PRE] 一見 [SAMP@en[pic1]] という名前をスクリプトから参照しているように見えますが、 スクリプトが参照している [SAMP@en[pic1]] は [CODE(HTMLe)@en[[[img]]]] の [CODE(HTMLa)@en[[[id]]]] の方です。著者は一体何を考えて [CODE(HTMLe)@en[div]] に [CODE(HTMLa)@en[name]] なぞ付けたのでしょう? [76] [CITE@en[BIGLOBE SoftPlaza DHTML-Seminar 2-7/9]] (1998年11月付け、 [[Tomohiro Tamoto]] 著) > [CODE(HTML bad example code)@en[]]
]PRE] [[WinIE]] には [CODE(HTMLa)@en[id]] を、 [[Netscape Navigator 4]] には [CODE(HTMLa)@en[name]] を使うのだとさも当然のように説明しています。 [77] [CITE@en[Dynamic HTML in Communicator]] [[Netscape]] 社の ([[Netscape Navigator 4]] の時代の) [[DHTML]] の仕様書ですが、 [[DOM]] の [CODE(DOMi)[[[Layer]]]] [[物体]]の [CODE(DOMa)[[[name]]]] 属性を > The name assigned to the layer through the NAME or ID attribute. と説明しています。しかし [[HTML]] の [CODE(HTMLe)@en[[[layer]]]] 要素にも [CODE(HTMLe)@en[[[div]]]] 要素にも [CODE(HTMLa)@en[[[id]]]] 属性はあっても、 [CODE(HTMLa)@en[[[name]]]] 属性があるという話はどこにも出てきません。 [[DOM]] の [CODE(DOMi)@en[[[Layer]]]] [[物体]]の [CODE(DOMa)[[[id]]]] 属性も載っていません。 [78] [CITE@en[Layer 1193137 Layer ]] [[Netscape]] 社の ([[Netscape Navigator 4]] の時代の) [[JavaScript]] 1.3 の仕様書ですが、 [CODE(DOMi)@en[[[Layer]]]] [[物体]]の [CODE(DOMa)@en[[[name]]]] 属性をこちらは > A string specifying the name assigned to the layer through the ID attribute in the LAYER tag. と説明しています。 [CODE(HTMLa)@en[[[name]]]] 属性への言及がなくなっています。 [79] 実際に [[Netscape Communicator]] 4.8 で確認してみると、 [[DOM]] の [CODE(DOMi)@en[[[Layer]]]] [[物体]]には [CODE(DOMa)@en[[[name]]]] [[属性]]と [CODE(DOMa)@en[[[id]]]] [[属性]]の両方が存在しており、 どちらも同じ [CODE(HTMLa)@en[[[id]]]] [[属性]]または [CODE(HTMLa)@en[[[name]]]] [[属性]]の値になります。 両方指定されて矛盾している場合は [CODE(HTMLa)@en[[[name]]]] [[属性]]が優先されます [WEAK[(その場合、 [CODE(JS)@en[[[document]].[[layers]].[VAR[id]]]] でアクセス''できません'')]]。 [80] 仮のまとめ: [[Netscape Navigator 4]] で [CODE(HTMLe)@en[[[div]]]] 要素に [CODE(HTMLa)@en[[[name]]]] 属性が実装されており、古い NC4 の時代には正式な機能の一部だった可能性もある。 その風習を意味も無く今でもまもり続けている変な人がいくらかいるらしい(藁 [81] テスト: - [CITE@en[div/@name Attribute]] - [CITE@en[div/@name and div/@id Attributes]] - [CITE@en[div/@id Attribute]] 検索: - - [101] [[pod2html]] が生成する [[HTML]] には [CODE(HTMLe)@en[[[div]]]] [[要素]]に [CODE(HTMLa)@en[[[name]]]] [[属性]]が指定されたものが含まれます。 ([[名無しさん]]) [[#comment]] * メモ @@ - [95] [CODE(HTMLa)@en[[[name]]]], [CODE(HTMLa)@en[[[id]]]], [CODE(HTMLa)@en[[[usemap]]]], [CODE(HTMLa)@en[[[target]]]], [CODE(SGML)@en[%[[FrameTarget]];]], [CODE(HTTP)@en[[[Window-Target]]:]], [CODE(XML)@en[[[ID]]]], [[噂の[CODE(XML)@en[ID]]問題]], [[素片識別子]]などの項の内容を整理する。 - [[Web Applications 1.0]] で規定されるのを待つのが賢明。 -- 特に整理して提示するべき話題: --- [[素片識別子]]として使われる [CODE(HTMLa)@en[[[name]]]] [[属性]]はどれ? --- [[DOM属性]] [CODE(DOMa)@en[[[name]]]] との関係 --- [CODE(HTMLa)@en[[[name]]]], [CODE(DOMa)@en[[[name]]]], [CODE(HTMLa)@en[[[id]]]], [CODE(XMLa)@en[[[xml]]:[[id]]]] の各仕様における地位 --- [CODE(HTMLa)@en[[[name]]]] と [CODE(HTMLa)@en[[[id]]]] の値域 --- [[大文字]]と[[小文字]] --- [[空白]]の[[正規化]] --- 先頭の [CODE(URI)@en[[[#form:'':'']]#]]]] --- [[素片識別子]]の[[文字コード]] --- 重複、 [CODE(HTMLa)@en[[[name]]]]/[CODE(HTMLa)@en[[[id]]]] の齟齬 --- [CODE(DOMi)@en[[[HTMLCollection]]]] 系各種[[物体]]との関係 [100] [CITE[Bug 444222 – window.name/.status can be used as an XSS attack vector]] ([CODE[2008-09-15 22:34:02 +09:00]] 版) ([[名無しさん]])