更改哈希时重新加载页面

时间:2013-09-12 21:39:34

标签: javascript url hash window.location

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

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

问题是当我更改URL中的哈希值时。例如,将其从Home.html #Web更改为Home.html#Photos。执行此操作时,页面不会重新加载,因此我创建的安装程序函数不会调用哈希,页面就会保留原样。

有关强制页面重新加载的方法的任何想法吗?还是更好的解决方案?

谢谢, 安迪

2 个答案:

答案 0 :(得分:23)

请勿重新加载页面。相反,设置一个onhashchange事件处理程序,并从那里调整左值:

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

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

答案 1 :(得分:-1)

我有一个JQuery函数,它触发了$('body')。on('click','。sububcategory-link',function(){});检测到在我的情况下是否有附加到URL的哈希,所以我保持该功能相同,然后只要检测到哈希更改就使用强制重新加载: 下面我写代码请试试这个从我的魅力中消失。

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

});