哈希不适用于后退按钮;需要javascript在url更改时调用函数

哈希不适用于后退按钮;需要javascript在url更改时调用函数,javascript,hash,onchange,window.location,Javascript,Hash,Onchange,Window.location,大家好,这段代码是用来读取url中哈希之后的内容,并根据该值显示特定的div。现在,它可以正常工作,除了当您在站点上尝试更改哈希值时,或者如果您点击后退按钮,这具有相同的效果:更改哈希值,但div没有更改。该站点是这样创建的,它不会随着每个div的改变而重新加载页面的主要内容,因此我假设当您点击后退按钮或在散列后键入不同的值时div不会改变的原因是页面已经加载,并且javascript代码在页面加载时只调用一次。我需要一种在url更改时调用它的方法。代码如下: 函数散列{ var hash=wi

大家好,这段代码是用来读取url中哈希之后的内容,并根据该值显示特定的div。现在,它可以正常工作,除了当您在站点上尝试更改哈希值时,或者如果您点击后退按钮,这具有相同的效果:更改哈希值,但div没有更改。该站点是这样创建的,它不会随着每个div的改变而重新加载页面的主要内容,因此我假设当您点击后退按钮或在散列后键入不同的值时div不会改变的原因是页面已经加载,并且javascript代码在页面加载时只调用一次。我需要一种在url更改时调用它的方法。代码如下:

函数散列{ var hash=window.location.hash.replace,; 插入孔雀石;
}

恐怕这不是一个bug,而是一个特性。例如,Opera在内存中存储页面的确切状态。因此,如果你点击后退按钮,该状态将完全恢复。就好像你从来没有换过那一页


不过,通过在更改哈希后立即调用InsertContent,更改哈希应该可以工作。那不管用吗?您能给我们看一下代码吗?

您需要轮询window.location.hash并查看它是否更改。有些浏览器支持事件


另一个讨论:

jQuery有一个名为address的插件来解决这个问题