2012-12-19 13 views
7

ハッシュを更新してからページをリロードしようとしています。window.location.reloadの後にアンカーリンクに移動します。

$('a[name="' + fragment + '"]').remove(); //don't jump before window reloads 
window.location.hash = fragment; 
window.location.reload(true); 

アンロードタグの後にウィンドウがジャンプしません。どうすれば修正できますか?

+0

なぜあなたはハッシュを使用し、その後、ページをリロード:私はので、あなたに代わって、それの答えを作成しています? – adeneo

+1

私は思う**あなたは 'href'プロパティを変更する方が良いと思います:' window.location.href = url + '#your-hash'; ' –

+0

アイデアはページをリロードしてから画面を特定のページ上の場所 –

答えて

1

MOZILLA DEVELOPER NETWORKreplaceを使用することをお勧め:

function reloadPageWithHash() { 
    var initialPage = window.location.pathname; 
    window.location.replace('http://example.com/#' + initialPage); 
} 
2

これは、ページをリロードしている場合はjQueryで実現するのはかなり簡単です。ページを読み込むときには、window.location.hashプロパティをチェックするだけです。

$(document).ready(function() { 
    if(window.location.hash) { // just in case there is no hash 
     $(document.body).animate({ 
      'scrollTop': $(window.location.hash).offset().top 
     }, 2000); 
    } 
}); 

あなたのハッシュがスクロールしている要素のIDと一致することが唯一の警告です。

デモhere

0

@Tim S.私の意図は、あなたの雷けどを盗むためではない絶対にあなたの非常に低いキーコメントが正常に越え、シンプルきれいで、テストとして、上記のこの質問への最適解が私の意見でありますさまざまなブラウザ。 (URLは現在のページできる場所 - 必要に応じて、または異なる1)

window.location.href = url#anchor 

+1

これは、url/anchorが同じ場合、ページをリロードしません。 –

関連する問題