使用Ajax的后退按钮历史记录,不带URL中的哈希

时间:2012-09-05 20:55:43

标签: javascript jquery html5

我有这段代码:

    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,我尝试使用

更新URL
window.history.pushState('', '', link);

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

1 个答案:

答案 0 :(得分:0)

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

window.onpopstate = function(event) {
  alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};