* 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'' [[#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]] [[#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 のような人達のせいで。 [[#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]] [69] HTML 4 DTD [[注釈]] (参考) には [Q[name of form for scripting]] (スクリプト用フォーム名) と説明があります。 ([[名無しさん]] [sage]) [[#comment]] *** 代替 [59] この属性は、'''後方互換性'''のために追加されました。 [[応用]]は要素の識別には [CODE(HTMLa)[[[id]]]] 属性を使うべきです [SRC[HTML 4 17.3]]。 [[#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] この属性によって付けた名前を使って[[スクリプト]]や[[スタイル・シート]]から参照できます。 [[#comment]] *** 歴史 [57] この属性は後方互換性のため [[HTML 4.01]] で追加されました [SRC[HTML 4.01 A.1.1.12]]。 [[#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]] [67] HTML 4 DTD の[[注釈]] (参考) には [Q[name of image for scripting]] と書かれています。 ([[名無しさん]] [sage]) [[#comment]] *** 代替 [27] この属性は後方互換性のために含められているもので、 著者は [CODE(HTMLa)[[[id]]]] 属性を使用するべきです。 [SRC[HTML 4.01]] [[#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]] *** 代替 [37] この属性は HTML 4 で要素ごと'''非推奨'''とされています。 代わりに [CODE(HTMLe)[[[object]]]] 要素型と [CODE(HTMLa)[[[id]]]] 属性を利用できます。 (ただし、完全に等価ではないので注意してください。) [[#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]] と書かれています。 ([[名無しさん]] [sage]) [[#comment]] ** map 要素 name 属性 [42] [[HTML]] の [CODE(HTMLe)[[[map]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、[[クライアント側画像写像]]の名前を割当てます。 [43] 仕様書: [[HTML 4]] [48] HTML 4 仕様書には [CODE(HTMLe)[map]] 要素独自の [CODE(HTMLa)[name]] 属性の定義の他に[Q[他で定義されている属性]]として form control 系 [CODE(HTMLa)[name]] 属性への参照があるのですが、これって間違いでしょうか。 [[#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]]]] 属性の規定も修正しない限り削除しちゃうとまずいと思いますが... [[#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]] -- [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]] 属性が参照されています。 [7] 詳しくは、[[制御子名]]の説明をご覧ください。 [[#comment]] * 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]] 属性 HTML 4 仕様書本文では、 [CODE(HTMLe)[iframe]] 要素型の定義で、 [CODE(HTMLa)[name]] 属性を独自の定義と [CODE(HTMLe)[frame]] 要素型での定義の参照の両方としています。 おそらくいずれかが間違いなのでしょうが、幸い、 どちらの [CODE(HTMLa)[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]] * メモ