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