none
ページ内アンカーに移動しない RRS feed

  • 質問

  • あるページ"A"に
    <div id = "TOP"></div>と設定し
    ページ"B"に
    <a href="test.html#TOP">test<a>
    と設定しました。

    動作確認をした結果、Firefox・クロムと正常に動くのですが
    IEが全バージョンで、該当ページに飛ぶのですが、アンカーに
    移動しません。

    ローカルにてテストをした結果、IEで通常に移動します。

    調べた所、
    javascript等が使用されているとリンク先ジャンプ後にセキュリティの確認
    が有るため、アンカーリンクが消されると書いてあったので

    javascript部分を全て削除し、動作確認をしたのですが
    やはりアンカーに飛んでくれません。

    どなたか、ご教示ください。
    2010年7月13日 7:40

回答

  • ご回答くださった、皆さま申し訳ありません・・・

     

    今回の不具合が解決したので、ご報告します。

     

    作成時に、テストの為、様々なコードをコピペして作成していました。

    その際に、アンカー名が"TOP"となった訳ですが(画面最上部に移動するアンカーをコピペ)

    アンカー名を、"HISTORY"等、通常の名前?にした結果、動作しました。

    どうやら、IEではアンカー名に"TOP"と指定すると、無効化されるか、最上部に飛ぶようです。

     

    予約語として”TOP”は指定されているのでしょうか!?

     

    いや、ローカルテストでは、アンカー名"TOP"としていても正常に移動しました。

     

    詳細な原因が解りませんが、とりあえず解決とさせていただきます。

     

    ご回答いただいた、皆様、ありがとうございました><

    • 回答としてマーク コーベル 2010年7月14日 6:56
    2010年7月14日 6:55

すべての返信

  • <div id="TOP"></div>ではなく<a name="TOP">~</a>ですよ。
    2010年7月13日 8:30
  • ご回答、ありがとうございます。

    <a name="TOP">~</a>も、テストしたのですが

    同様に移動してくれません。現在ではidが推奨されているようなので

    そちらを使用しています。

     

    また、JSを使用し

    window.location.href="/test#TOP"

    とするも、それも動作しません。

     

    唯一、アドレスバーに直打ちすると、希望の動作をしてくれます。。。

    2010年7月13日 8:41
  • name 属性は使用が限定されているそうですが、それはさておき、あるページで以下のよ
    うに 3 種類設定し、

    <a name="fragment1"></a>
    <div id="fragment2"></div>
    <span id="Label1"></span>

    別のページで、

    <a id="HyperLink1" href="Default.aspx#fragment1">Default.aspx#fragment1</a>
    <a id="HyperLink2" href="Default.aspx#fragment2">Default.aspx#fragment2</a>
    <a id="HyperLink3" href="Default.aspx#Label1">Default.aspx#Label1</a>

    として、IE8 で試してみましたが、いずれも期待通りそのページの指定した位置に飛び
    ましたが?

    2010年7月13日 14:09
  • ご回答、ありがとうございます。

     

    そうなんですよね、普通に飛ぶはずなのですが・・・

     

    私どもが作成しているページ及びソースを公開できればいいのですが

    状況動画も公開できるはずもなく・・・

     

    今回は、これで閉じさせていだきます。

     

    ありがとうございました。

    2010年7月14日 1:51
  • 再現しませんでした。(´・ω・`)

    ネットで「アンカー」+「飛ばない」で検索してみると、同様の現象が見つかりました。
    一番近そうなのは以下でしょうか。

    http://www.sunsweb.net/archives/110

    http://yokodeji.sblo.jp/article/24484352.html

    ローカルかどうかで再現有無が変わるとのことなので、タイミングかセキュリティがらみな気がしています。

    実は読み込めていないリソースが存在しているなんてことはないですよね?
    ブラウザは飛ぶべき条件がそろったと思ったときに飛ぶはずで、その条件がいつまでも満たされていないとブラウザが思っている可能性もあると思っています。

    せめて、ページA内に他のアンカーを作っていただき、同様の現象が発生するかどうかを教えていただけるとうれしいです。

    • 回答としてマーク コーベル 2010年7月14日 6:55
    • 回答としてマークされていない コーベル 2010年7月14日 6:56
    2010年7月14日 3:50
  • ご回答ありがとうございます。

     

    リンク提示していただき、ありがとうございます。

    残念ながら、開発チームで違うPCでも確認を行っている為、個人PCの問題ではなく

    また、インラインフレームでの作成ではないため(動作検証するも)、直りません。

     

    せめて、ページA内に他のアンカーを作っていただき、同様の現象が発生するかどうかを教えていただけるとうれしいです。

    ありがとうございます!

    なぜ、こんな事が解らなかったのか、お恥ずかしい限りですが、別の場所にアンカーを設置しての

    テストを実施していませんでした。

    結果、指定場所の上部分にアンカー”TEST”を設置した所、正常に動作しました!

     

    まだ、原因は解りませんが一歩前進したようです。

     

    2010年7月14日 6:14
  • ご回答くださった、皆さま申し訳ありません・・・

     

    今回の不具合が解決したので、ご報告します。

     

    作成時に、テストの為、様々なコードをコピペして作成していました。

    その際に、アンカー名が"TOP"となった訳ですが(画面最上部に移動するアンカーをコピペ)

    アンカー名を、"HISTORY"等、通常の名前?にした結果、動作しました。

    どうやら、IEではアンカー名に"TOP"と指定すると、無効化されるか、最上部に飛ぶようです。

     

    予約語として”TOP”は指定されているのでしょうか!?

     

    いや、ローカルテストでは、アンカー名"TOP"としていても正常に移動しました。

     

    詳細な原因が解りませんが、とりあえず解決とさせていただきます。

     

    ご回答いただいた、皆様、ありがとうございました><

    • 回答としてマーク コーベル 2010年7月14日 6:56
    2010年7月14日 6:55
  • まさかとは思いますが、 name="TOP" や id="TOP" (小文字も含む)が複数あったりしませんよね?
    2010年7月14日 7:07
  • ご回答、ありがとうございます。

    確認しておりますが、同名のアンカーは存在しません。

    むしろ、そのほうが楽だったのですが^^;

    2010年7月14日 7:26