教えて頂きたい点は、下記問題のケースにおいて、1行目(id=1)のみアンカーリンクが機能しないという点です。
ちなみに他のブラウザ(Firefox, Safari, Opera)等では意図通りい動作しました。
ご回答宜しくお願いいたします。
<問題のケース>
▼リンク元
<a href="./target#1">LINK</a>
▼リンク先
<table>
<tr id="1" name="1">
<th>Name</th>
<td>hoge</td>
</tr>
<tr id="2" name="2">
<th>Name</th>
<td>hoge</td>
</tr>
<tr id="3" name="3">
<th>Name</th>
<td>hoge</td>
</tr>
....
</table>
なお、以下の点は検証済みですので、既知のものとして回答はお控えください。
<検証1>
id属性のみ
▼リンク先
<ul>
<li id="1">1</li>
<li id="2">2</li>
<li id="3">3</li>
......
</ul>
▼結果
正常動作
<検証2>
name属性のみ
▼リンク先
<ul>
<li name="1">1</li>
<li name="2">2</li>
<li name="3">3</li>
......
</ul>
▼結果
動作せず
<検証3>
id属性+name属性
▼リンク先
<ul>
<li id="1" name="1">1</li>
<li id="2" name="2">2</li>
<li id="3" name="3">3</li>
......
</ul>
▼結果
正常動作
<a href="./target#1">LINK</a>
は
<A href="./" target="#1">LINK</A>
の記述ミスでは?
(あるいはtargetという名前のファイルが無い)
(フォーム関連、アンカー、フレーム・・後は思いつかない)
だから検証でリストにnameだけ付けても機能しないのは正しい。
ただし、idと併記したときに動かないは確かにおかしい。
とはいえ、不正な文書なのも確かなんだし、
使えないはずの場所のnameを削除して正常に動くならそれでいいのでは?
ただ、tableでidだけにしても動作がおかしいなら、解決策を探す必要がありますね。
(なんでテーブルで不具合でてるのに検証はリストなんだろう??)
確かにおっしゃる通りで。table 形式で再検証しました。
<再検証1>
id属性のみ
OK
<再検証2>
name属性のみ
NG
<再検証3>
id属性 + name属性
OK
/* 検証用のサンプルを一応
------------------------------*/
<table>
<tr id="1">
<th>Name</th>
<td>1</td>
</tr>
<tr id="2">
<th>Name</th>
<td>2</td>
</tr>
<tr id="3">
<th>Name</th>
<td>3</td>
</tr>
<tr id="4">
<th>Name</th>
<td>4</td>
</tr>
<tr id="5">
<th>Name</th>
<td>5</td>
</tr>
.....
</table>
> 使えないはずの場所のnameを削除して正常に動くならそれでいいのでは?
> ただ、tableでidだけにしても動作がおかしいなら、解決策を探す必要がありますね。
最初idだけで動かしていたのですが、IE7で正しく動かないことが発覚したためnameを追加しました。
> name属性ってのはidと違って何にでも付けられるものではない。
> (フォーム関連、アンカー、フレーム・・後は思いつかない)
なるほど。。
これは知識不足でした。
利用可能な要素を認識した後、改めて検証してみたいと思います。
# name属性が利用できる要素は
http://www.hajimeteno.ne.jp/html40/n/name.html
これを元に
# 解決策は以下のようにしました。
<table>
<tr id="1">
<th>Name</th>
<td><a name="1">1</a></td>
</tr>
<tr id="2">
<th>Name</th>
<td><a name="2">2</a></td>
</tr>
<tr id="3">
<th>Name</th>
<td><a name="3">3</a></td>
</tr>
<tr id="4">
<th>Name</th>
<td><a name="5">4</a></td>
</tr>
<tr id="5">
<th>Name</th>
<td><a name="5">5</a></td>
</tr>
</table>
ポイント返却しました。