0

我有这个代码:

    var idRetorno = null;
var link = null;


function handler() 
{
    if(this.readyState == this.DONE) {
    if(this.status == 200) 
    {
           $('#'+idRetorno).html(this.responseText);
           window.history.pushState('', '', link);
    }
  }
}

function link_ajax(linkp, idRetornop)
{
    idRetorno = idRetornop;
    link = linkp;

    var client = new XMLHttpRequest();
    client.onreadystatechange = handler;
    client.open("GET", link);
    client.setRequestHeader('X-Requested-Header', 'XMLHttpRequest');
    client.send();
}

单击链接时,我的应用程序中的所有内容都会调用函数link_ajax,我尝试使用

window.history.pushState('', '', link);

但是,后退按钮历史记录没有按预期工作,页面仍然相同。我不能在 URL 中使用哈希(#color:red 示例),因为这是应用程序的要求。还有其他解决方案吗?

4

1 回答 1

0

您是否使用onpopstate来检测页面状态已更改?

window.onpopstate = function(event) {
  alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
于 2012-09-05T21:05:30.640 回答