转到window.location.reload之后的锚点链接

时间:2012-12-19 11:50:27

标签: javascript anchor

我正在尝试更新哈希然后重新加载页面。

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

重载窗口后没有跳转到锚标签。我该如何解决?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

MOZILLA DEVELOPER NETWORK建议使用replace

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

答案 2 :(得分:0)

@Tim S.我的意图绝对不是为了窃取你的风头,但我认为上面这个非常低调的评论是这个问题的最佳解决方案,因为它简单,干净并且可以在各种浏览器中成功测试。因此,我代表您创建答案:

window.location.href = url#anchor

(其中url可以是当前页面 - 或根据需要使用不同的页面)