Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript URL更改不会改变';t重新加载文档->;如何检查散列?_Javascript_Jquery_Css_Url_Hash - Fatal编程技术网

Javascript URL更改不会改变';t重新加载文档->;如何检查散列?

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") {

我的页面上有一个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") {
    $("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 ..
    });