Javascript URL更改不会改变';t重新加载文档->;如何检查散列?
我的页面上有一个div(带有set id)和一个“打开”/“关闭”按钮。默认情况下,此div是隐藏的(Javascript URL更改不会改变';t重新加载文档->;如何检查散列?,javascript,jquery,css,url,hash,Javascript,Jquery,Css,Url,Hash,我的页面上有一个div(带有set id)和一个“打开”/“关闭”按钮。默认情况下,此div是隐藏的(display:none) 单击按钮后,我打开/关闭div并在url中附加或删除哈希标记:window.location.hash=“#about__text”或window.location.hash=”“每次加载文档时,我都会检查是否设置了哈希标记,以便在URL输入哈希标记时立即显示div: if(window.location.hash == "#about_us_text") {
display:none
)
单击按钮后,我打开/关闭div并在url中附加或删除哈希标记:window.location.hash=“#about__text”代码>或window.location.hash=”“
每次加载文档时,我都会检查是否设置了哈希标记,以便在URL输入哈希标记时立即显示div:
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");
}
这一切都很好,但有一个小问题我无法解决。如果我打开一个新的选项卡/窗口并输入带有或不带有has的URL,它将按预期工作。但是如果我打开页面,让它加载,然后在同一个选项卡中替换URL,则不会考虑哈希标记。例如:
我打开www.mysite.com/index.html->no hash,div不显示=>正确
我将同一窗口/选项卡中的url替换为www.mysite.com/index.html#about_us_text->页面不会重新加载(document ready不会启动),div不会显示,尽管它应该显示
有没有办法解决当URL在同一窗口/选项卡中更改时显示/显示div的问题?非常感谢 我觉得这个很方便。原来的帖子在这里
看一下将触发hashchange
事件的:哇,非常有用,谢谢大家!这是一个有效的解决方案,让我知道,如果它在你的情况下不工作,我会尝试帮助在评论。
$(window).on('hashchange', function() {
//.. work ..
});