哈希不支持后退按钮;需要javascript来调用url上的函数更改

时间:2010-11-18 23:10:38

标签: javascript hash onchange window.location

大家好,这段代码是为了读取url中哈希值后面的内容,并根据该值显示一个特定的div。现在它工作正常,除了当你已经在网站上时尝试更改哈希(或者如果你点击后退按钮,它具有相同的效果:更改哈希,但div没有改变)。该网站是这样做的,它不会重新加载每个div更改(页面的主要内容),所以我假设当你点击后退按钮或在哈希后输入不同的值时div没有改变的原因是因为页面已加载,javascript代码仅在页面加载时调用一次。每当网址被更改时,我都需要一种方法来调用它。这是代码:

function hash() { var hash = window.location.hash.replace('#',''); InsertContent(hash); }

3 个答案:

答案 0 :(得分:0)

我担心这不是一个错误,这是一个功能。例如,Opera将页面的确切状态存储在内存中。因此,如果您点击后退按钮,该状态将完全恢复。这就像你永远不会改变页面一样。

通过在更改哈希后立即调用InsertContent(),更改哈希应该可以正常工作。这不行吗?你能告诉我们代码吗?

答案 1 :(得分:0)

您需要轮询window.location.hash并查看它是否发生变化。有些浏览器支持onhashchange事件。

另一个讨论:On - window.location.hash - Change?

答案 2 :(得分:0)

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