#?SuikaWiki/0.9 * 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]] 属性]]は、 そのアンカーに名前をつけます。 (そうすることで他の[[連結]]の終点にできるようになります。) 仕様書: [[HTML 4]] [[#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符号化]]しなければならないことに注意してください。) [[#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] [CODE(HTMLe)[[[form]]]] 要素で使って、要素に名前をつけます。 この名前は[[スタイル・シート]]や[[スクリプト]]からの参照につかえますが、 [CODE(HTMLa)[[[id]]]] 属性の使用が推奨されます。 仕様書: [[HTML 4]] [[#comment]] ** img 要素 name 属性 (HTML, XHTML 1) [25] [[HTML]] の [CODE(HTMLe)[[[img]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、要素に名前をつけて[[スクリプト]]や[[スタイル・シート]]で参照できるようにすることができます。 [26] 仕様書: [[HTML 4]] [[#comment]] *** 代替 [27] この属性は後方互換性のために含められているもので、 著者は [CODE(HTMLa)[[[id]]]] 属性を使用するべきです。 [HTML 4] [[#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]] *** 他との関係 [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]] *** メモ [[#comment]] ** map 要素 name 属性 [42] [[HTML]] の [CODE(HTMLe)[[[map]]]] 要素の [DFN[[CODE(HTMLa)[name]] 属性]]は、[[クライアント側画像写像]]の名前を割当てます。 [43] 仕様書: [[HTML 4]] [[#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]] ** メモ [[#comment]] * Form control 系 name 属性 [1] [CODE(HTMLa)[name]] 属性の[[適用範囲]]は当該 [CODE(HTMLe)[[[form]]]] 要素内。 () [[#comment]] ** input 要素 name 属性 (HTML, XHTML 1) [6] [CODE(XPath)[[CODE(HTML)[[[input]]]][@[CODE(HTML)[[[type]]]]='[CODE(HTML)[[[submit]]]]'] ]] な要素の [CODE(HTML)[name]] 属性の値を [CODE[navi_pos]] とすると、[[iモード]]端末では位置情報を form の他の内容とともに送信します。 ''DoCoMo Net - 製品・サービス - i-mode'' [7] [SAMP(URI)[http://www.example.com/gps/serch.cgi?pos=N35.39.41.61E139.44.49.42&geo=wgs84&X-acc=3¶m=a]] ([CODE(HTML)[[[method]]=[[get]]]] の場合) のようになるそうです。 この挙動は [[HTML 4]] などの form submit 処理手順に反する重大な非互換変更です。 [9] [[_charset_]] hack [[#comment]] ** メモ [[#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]] * メモ