Javascript 浏览器&x27;使用ajax调用时的backbutton问题
我有一个列表,其中包含通过ajax获取的搜索结果(确切地说,是microsoft updatepanel)。问题是,我不能使用任何webbrowser的backbutton来导航回以前通过ajax获取的列表。你有什么想法吗Javascript 浏览器&x27;使用ajax调用时的backbutton问题,javascript,asp.net,updatepanel,Javascript,Asp.net,Updatepanel,我有一个列表,其中包含通过ajax获取的搜索结果(确切地说,是microsoft updatepanel)。问题是,我不能使用任何webbrowser的backbutton来导航回以前通过ajax获取的列表。你有什么想法吗 谢谢在url中添加一些内容,如page.html#state1,page.html#state2等。这是一种常见的做法您需要让所有ajax调用更新window.location.hash function getAjaxResource(id) { // some aja
谢谢在url中添加一些内容,如
page.html#state1
,page.html#state2
等。这是一种常见的做法您需要让所有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);
每次用户单击“后退/前进”时,哈希值都会发生变化,观察者将拾取该变化。Hi semyon,谢谢你的回答,但我做不到。更新面板使用POST获取新数据。@Erwin-当您发出ajax请求时,您在javascript中设置了哈希值。这不会自动用于asp.net updatepanel,因为它们发布表单数据以获取updatepanel内容的正确数据。如果您按下浏览器后退或前进按钮,它将不再知道该页面状态的正确表单数据,因此它将不知道显示什么。