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 を呼び出します。URL を次のように更新しようとしました。

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 に答える