3

この地図では:

http://web.pacific.edu/documents/marketing/campus-map/version%202/stockton-campus-2.0.htm

上部にアンカーがあり、リンクがクリックされたときにページがアンカーにジャンプするようにします。

私は現在使用しています

window.location = '#top';

FF、Opera、および Chrome では期待どおりに動作しますが、IE 7 では動作しません。

window.location.hash や window.location.assign() 、さらに scrollIntoView(true) や focus() などのすべての順列を試しました。

IE で動作させるにはどうすればよいですか?

編集:何も機能していないようです。構文ではなく、JSに関する何かだと思います...ここにクリックイベントハンドラーがあります... falseを返すためでしょうか? 私はストローをつかんでいます。

// Click handler for each location link
$('#index a').click(function()
{
    hideMarkers();
    location.href = location.href + "#top";
    var marker = showMarker( $(this).attr('data-id') );
    GEvent.trigger( marker, "click" );
    return false;
});

編集: HTTP の "Location" ヘッダーを介したページ リダイレクトの結果として読み込まれたページで、window.location.hash への割り当てが IE7 および IE8 で壊れます。解決策は、それ自体がリダイレクトを実行する Javascript を含むページを返すことです。Joe Lapp による回答を参照してください。

4

6 に答える 6

7

このコードは本番環境にあり、IE7 で正常に動作します...

location.hash = "#top";

ただし、一番上までスクロールしようとしているだけなら、これはずっと簡単なはずです...

window.scrollTo(0, 0);
于 2009-07-23T19:49:50.020 に答える
3

また、 windows.location.hashが IE7 と IE8 (少なくとも Vista では) 以外のすべてのブラウザーで動作するという問題もありました。多くの実験の後、ページのリダイレクトがハッシュの割り当てを壊していることを発見しました。

IE7 または IE8 で、HTTP の "Location" ヘッダーを介したリダイレクトの結果として読み込まれたページ内から windows.location.hash に値を割り当てると、エラーが発生します。

これを発見した後、StackOverflow の他の場所で修正を見つけることができました (こちらを参照)。解決策は、ブラウザを Javascript 経由でリダイレクトさせることです。ここで、他の StackOverflow ページからソリューションを再投稿します。

<html>
<head>
    <meta http-equiv="refresh" content="0; url=__REDIRECT_LOCATION__">
    <script>window.location = "__REDIRECT_LOCATION__";</script>
</head>
</html>

これにより、ハッシュの設定に問題がある人とそうでない人がいる理由が説明できますが、スレッドの発信者がリダイレクトしていたかどうかはわかりません。

また、スクロールするのではなく、ページをリロードせずにアドレス バーからハッシュ タグを削除することが目的だったので、scrollTo() だけを使用することはできませんでした。

于 2011-03-09T04:34:07.893 に答える
2

location.href = location.href.split("#")[0] + "#top"

編集: 2 つのハッシュを持つ可能性を避けるため。

于 2009-07-23T17:51:00.680 に答える
0

追加する前にハッシュを確認する必要があります。これでやりました、

window.location = ((location.href).indexOf('#') == -1 ? location.href + "#top" : location.href);

于 2014-08-13T18:53:23.760 に答える
-1
window.location.href = '#top';

これが機能しない場合は、完全な URL を試してください

window.location.href = 'http://domain.com/my.html#top';
于 2009-07-23T17:51:55.840 に答える