更改URL不会重新加载文档->如何检查哈希值

URL change doesn't reload the document -> how to check the hash?

本文关键字:何检查 哈希值 检查 文档 新加载 URL 更改 加载      更新时间:2023-09-26

我在我的页面上有一个div (set id)和一个"打开"/"关闭"它的按钮。默认情况下,这个div是隐藏的(display: none)。

在点击按钮时,我打开/关闭div并添加或删除一个散列标签到url: window.location.hash = "#about_us_text";window.location.hash = "";在每个文档加载时,我检查是否设置了散列标签,以便我可以立即显示div,如果url输入了散列标签:

if(window.location.hash == "#about_us_text") {
    $("a[href='#about_us_text']").trigger("click"); //trigger the click event which 'slides down' the div
    console.log("hash found");
}

这一切都很好,但有一个小问题我无法解决。如果我打开一个新的选项卡/窗口,我输入URL有或没有的有,它的工作如期进行。但是,如果我打开页面,让它加载,然后在同一选项卡中替换URL,则不会考虑散列标签。例如:

  1. 我打开www.mysite.com/index.html ->没有散列,div没有显示=>正确
  2. 我替换url在相同的窗口/标签www.mysite.com/index.html#about_us_text ->页面不重新加载(文档准备不火),div不显示,尽管事实上它应该。

是否有任何方法来解决,div显示/显示时,URL在同一窗口/选项卡更改?非常感谢!

我发现这很方便。原文在这里On - window.location.hash - Change?

$(window).on('hashchange', function() {
  //.. work ..
});