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

标签 javascript hashtag

我想做与我目前所发现的相反的事情。我用 js 设置了很多高度,我想在页面加载后导航到 url 中的主题标签。我猜这很简单,但我没有看到明显的答案...举个例子,在这里查看...

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

尝试使用代码...

$(window).load(function() {
    var hashTag = window.location.hash;
    window.location = '/' + hashTag;
}); 

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

最佳答案

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

window.onload = function (event) {
    window.location.hash = "#my-new-hash";
};

如果您想导航到具有新散列的 URL:

window.location.href = "http://website.com/#my-new-hash";

如果你想监听 URL 哈希值的变化;你可以考虑使用 window.onhashchange DOM 事件。

window.onhashchange = function () {
    if (location.hash === "#expected-hash") {
        doSomething();
    }
};

但它还没有被所有主流浏览器支持。 它现在有一个宽 browser support .您还可以通过每隔一小段时间轮询 window.location.hash 来检查更改,但这也不是很有效。

对于跨浏览器的解决方案;我会建议 Ben Alman's jQuery hashchange plugin将这些方法和其他一些方法与回退机制相结合。

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

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

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

参见文档 here .

关于javascript - 页面加载后如何导航到主题标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14348233/

相关文章:

javascript - 如何防止事件在子元素中被激活?

javascript - TinyMCE 在编辑器中添加可点击的按钮/div

Django 标签

servlets - 获取 Servlet 请求中 URL 的哈希标记(#)字符

javascript - 转换后PhoneGap图像旋转问题

javascript - Internet Explorer 中的 JQuery DOM 操作和 window.onbeforeunload

javascript - 浏览器如何通过 HTTP 下载文件

python - 如何在 python 变量或字符串中使用文字 # 而不注释掉其余部分?

php - 如何存储用户提及

ruby - 正则表达式匹配所有字母数字主题标签,没有符号