如何在页面加载后导航到主题标签?

bru*_*nam 13 javascript hashtag

我想做到目前为止我所发现的相反.我用js设置了很多高度,我想在页面加载后导航到url中的hashtag.我猜这很简单,但我没有看到明显的答案......例如,请点击这里......

http://alavita.rizenclients.com/#story

使用代码尝试了这个...

$(window).load(function() {
    var hashTag = window.location.hash;
    window.location = '/' + hashTag;
}); 
Run Code Online (Sandbox Code Playgroud)

实际上并没有把我带到标记部分的顶部......

Onu*_*rım 27

如果您只是想在页面加载后更改哈希:

window.onload = function (event) {
    window.location.hash = "#my-new-hash";
};
Run Code Online (Sandbox Code Playgroud)

如果要使用新哈希导航到URL:

window.location.href = "http://website.com/#my-new-hash";
Run Code Online (Sandbox Code Playgroud)

如果要监听URL哈希值的更改; 你可以考虑使用window.onhashchange DOM事件.

window.onhashchange = function () {
    if (location.hash === "#expected-hash") {
        doSomething();
    }
};
Run Code Online (Sandbox Code Playgroud)

但它并不是每个主流浏览器都支持它.它现在拥有广泛的浏览器支持.您还可以通过轮询window.location.hash小间隔来检查更改,但这也不是非常有效.

对于跨浏览器解决方案 ; 我建议Ben Alman的jQuery hashchange插件将这些方法与其他一些方法结合使用后备机制.

编辑:更新问题后,我知道您希望页面滚动到书签?:

你可以使用Element.scrollTop或jQuery的$.scrollTop()方法.

$(document).ready(function (event) {
    var yOffset = $("#my-element").offset().top;
    $("body").scrollTop(yOffset);
});
Run Code Online (Sandbox Code Playgroud)

见文档这里.