4

我有一个在 AJAX 上工作的应用程序。但是我想在其中具有导航功能。为了欺骗 url,我正在更改 location.hash,以生成 URL。但是如果我使用 back/fwd,只有 url 改变,但页面不会重新加载。如何覆盖hstory.back以重新加载页面。

4

4 回答 4

7

除了连续轮询来实现这种行为之外,我不知道有任何其他方式。一个实现可能如下所示:

var lastHash = '';

function pollHash() {
    if(lastHash !== location.hash) {
        lastHash = location.hash;
        // hash has changed, so do stuff:
        alert(lastHash);
    }
}

setInterval(pollHash, 100);
于 2009-03-10T11:54:18.550 回答
3

你不能准确地捕捉到 back 事件,但是这些问题中的大部分都已经解决了——而且也是一件好事,这是一个难题

看一下非常简单的历史(又名 RSH),然后实现它或通过它来了解它是如何工作的。

于 2009-03-10T11:46:33.907 回答
1

这个问题的答案与我对这些问题的答案或多或少相同:

总而言之,您可能想要查看的两个项目解释了整个 hashchange 过程并将其与 ajax 一起使用:

  • jQuery 历史(使用哈希来管理您的页面状态并绑定到更改以更新您的页面)。

  • jQuery Ajaxy(jQuery History 的 ajax 扩展,允许完整的 ajax 网站,同时完全不显眼并且可以优雅地降解)。

于 2010-08-28T17:01:42.097 回答
0

balupton的答案真的很棒。

但是您还有另一个 jQuery 插件来处理您的 ajax 请求,它是address

于 2010-11-09T02:07:54.847 回答