大家好,这段代码是为了读取url中哈希值后面的内容,并根据该值显示一个特定的div。现在它工作正常,除了当你已经在网站上时尝试更改哈希(或者如果你点击后退按钮,它具有相同的效果:更改哈希,但div没有改变)。该网站是这样做的,它不会重新加载每个div更改(页面的主要内容),所以我假设当你点击后退按钮或在哈希后输入不同的值时div没有改变的原因是因为页面已加载,javascript代码仅在页面加载时调用一次。每当网址被更改时,我都需要一种方法来调用它。这是代码:
function hash() {
var hash = window.location.hash.replace('#','');
InsertContent(hash);
}
答案 0 :(得分:0)
我担心这不是一个错误,这是一个功能。例如,Opera将页面的确切状态存储在内存中。因此,如果您点击后退按钮,该状态将完全恢复。这就像你永远不会改变页面一样。
通过在更改哈希后立即调用InsertContent()
,更改哈希应该可以正常工作。这不行吗?你能告诉我们代码吗?
答案 1 :(得分:0)
您需要轮询window.location.hash并查看它是否发生变化。有些浏览器支持onhashchange事件。
答案 2 :(得分:0)
jQuery有一个名为“address”的插件来解决这个问题