IE7 でアンカーリンク(ページ内リンク)がおかしい?

教えて頂きたい点は、下記問題のケースにおいて、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>

▼結果
正常動作

回答の条件
  • 1人5回まで
  • 登録:2009/02/03 11:59:22
  • 終了:2009/02/05 13:07:45

回答(1件)

id:fuk00346jp No.1

潮澤 昴回答回数1140ベストアンサー獲得回数542009/02/03 12:51:42

ポイント60pt

<a href="./target#1">LINK</a>

<A href="./" target="#1">LINK</A>

の記述ミスでは?

(あるいはtargetという名前のファイルが無い)

id:ion10

記述ミスではないと思います。

target属性ではなく、ファイルはあります。

2009/02/03 14:26:20
  • id:Mars
    name属性ってのはidと違って何にでも付けられるものではない。
    (フォーム関連、アンカー、フレーム・・後は思いつかない)

    だから検証でリストにnameだけ付けても機能しないのは正しい。
    ただし、idと併記したときに動かないは確かにおかしい。
    とはいえ、不正な文書なのも確かなんだし、
    使えないはずの場所のnameを削除して正常に動くならそれでいいのでは?
    ただ、tableでidだけにしても動作がおかしいなら、解決策を探す必要がありますね。
    (なんでテーブルで不具合でてるのに検証はリストなんだろう??)
  • id:ion10
    Mars様 コメントありがとうございます。
    確かにおっしゃる通りで。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>
  • id:ion10
    更に Mars様 コメントに対してご回答。

    > 使えないはずの場所のnameを削除して正常に動くならそれでいいのでは?
    > ただ、tableでidだけにしても動作がおかしいなら、解決策を探す必要がありますね。

    最初idだけで動かしていたのですが、IE7で正しく動かないことが発覚したためnameを追加しました。



    > name属性ってのはidと違って何にでも付けられるものではない。
    > (フォーム関連、アンカー、フレーム・・後は思いつかない)

    なるほど。。
    これは知識不足でした。
    利用可能な要素を認識した後、改めて検証してみたいと思います。
  • id:ion10
    自己レスです。解決しました!(Mars様のコメントを参考にしつつ)

    # 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>

  • id:fuk00346jp
    役立たずでごめんなさい
    ポイント返却しました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません