使用ajax调用时浏览器的后退按钮有问题

时间:2011-01-20 15:31:54

标签: javascript asp.net updatepanel

我有一个列表,其中包含通过ajax获取的搜索结果(准确地说是:microsoft updatepanel)。问题是我不能使用任何webbrowser的后退按钮导航回我通过ajax获取的先前列表。你有什么想法吗?

由于

2 个答案:

答案 0 :(得分:0)

向网址添加内容,例如page.html#state1page.html#state2等。这是一种常见做法

答案 1 :(得分:0)

你需要让所有的ajax调用更新window.location.hash。

function getAjaxResource(id) {
  // some ajax stuff
  window.location.hash = 'resource=' + id;
}

然后你需要使用javascript的setInterval函数将一个观察者添加到哈希值。

var hash = window.location.hash;
window.setInterval(function () {
  if (window.location.hash != hash) {
    hash = window.location.hash;
    getAjaxResource(hash.replace('resource=',''));
  }
},100);

每次用户点击后退/前进时哈希都会更改,观察者会选择更改。