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