我的页面上有一个div(设置了ID),还有一个“打开” /“关闭”按钮。默认情况下,此div是隐藏的(display: none)。

单击按钮后,我打开/关闭div并在URL上添加或删除哈希标签:window.location.hash = "#about_us_text";window.location.hash = "";在每次加载文档时,我检查是否设置了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,则不会考虑井号。例如。:


我打开www.mysite.com/index.html->没有哈希,div不显示=>正确
我将同一窗口/选项卡中的url替换为www.mysite.com/index.html#about_us_text->该页面不会重新加载(文档就绪不会触发),尽管它确实应该显示,但div仍未显示。


有什么方法可以解决当URL在同一窗口/选项卡中更改时显示/显示div的问题?非常感谢!

最佳答案

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

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

关于javascript - URL更改不会重新加载文档->如何检查哈希?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23729178/

10-12 00:01
查看更多