Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 更改哈希时重新加载页面_Javascript_Url_Hash_Window.location - Fatal编程技术网

Javascript 更改哈希时重新加载页面

Javascript 更改哈希时重新加载页面,javascript,url,hash,window.location,Javascript,Url,Hash,Window.location,更改哈希时重新加载页面 我有一个简单的单页网站,上面有几个“页面”。这些页面位于一个宽大的容器中,当您选择其中一个时,该容器会滚动。我在URL中添加了一个散列,这样您就可以直接定位到特定的页面。这只是在与switch语句中的哈希匹配时设置style.left属性 问题是,当我更改URL中的哈希值时。例如,将其从Home.html#Web更改为Home.html#Photos。执行此操作时,页面不会重新加载,因此不会调用我创建的检查散列的设置函数,页面只会保留在原来的位置 有没有办法强制重新加载页

更改哈希时重新加载页面

我有一个简单的单页网站,上面有几个“页面”。这些页面位于一个宽大的容器中,当您选择其中一个时,该容器会滚动。我在URL中添加了一个散列,这样您就可以直接定位到特定的页面。这只是在与switch语句中的哈希匹配时设置style.left属性

问题是,当我更改URL中的哈希值时。例如,将其从Home.html#Web更改为Home.html#Photos。执行此操作时,页面不会重新加载,因此不会调用我创建的检查散列的设置函数,页面只会保留在原来的位置

有没有办法强制重新加载页面?还是更好的解决方案

谢谢,
安迪

不要重新加载页面。相反,请设置一个事件处理程序,并从此处调整left值:

window.onhashchange = function() {
    // do stuff
}

否则,为什么要使用散列链接而不是常规链接?在任何情况下,如果您真的想重新加载,只需将
window.location.reload()
放在
onhashchange
处理程序中…

我有一个JQuery函数,它在$('body')上启动。on('click','subcategory link',function(){});在我的例子中,它检测到URL是否附加了哈希,因此我保持该函数不变,然后在检测到哈希更改时使用强制重新加载: 下面我写的代码请尝试这一个它从我写的魅力

       $(document).ready(function() {    
            $('body').on('click', '.subcategory-link', function () {        var data = $(this).attr('href');
           alert($(this).attr('href'));
           window.location.reload();
           });

}))

好的,我已经将它添加到Javascript的开头,但是当我更改哈希时,它似乎没有启动。您必须使用
window.onhashchange=PageAdjust
(在
PageAdjust
之后没有括号)。仍然没有任何内容。我觉得我把它放错地方了。目前,它只是在我的外部js文件的顶部,在任何函数之外。你用的是哪个浏览器?我并没有点击任何东西。我只是在浏览器的URL栏中更改它。IE10用于测试。