1

history.jsを使用して、ハッシュの変更に基づいていくつかのタスクを実行するWebページがあります。

replaceStateを使用して履歴の状態を変更します。

$(document).ready(function () {

    History.replaceState("state =1", "title", "?querystring");

    History.Adapter.bind(window, 'statechange', function () {
        var State = History.getState();
        if (State.title == "title")
            window.location.href = "default.aspx?mode=1";
        else
            window.location.href = "default.aspx?mode=2";
    });
});

ただし、「statechange」イベントは「document.ready」およびIE9のブラウザの戻る/進むボタンで呼び出されます。しかし、クロームとサファリでは、ブラウザの戻る/進むがクリックされたときにのみ呼び出すことで正常に機能します。

タイトルに基づいてページをリロードしているので。IEは、ページを継続的にリロードすることで夢中になります。

私はこの問題に関して考えられるすべてのフォーラムとスレッドを調べました。しかし、どのソリューションも機能しませんでした。

IE9および他のブラウザで機能する戻る/進むボタンのクリックでのみ「statechange」イベントを呼び出すための回避策を提案してください。

どんな助けでもありがたいです。ありがとう。

4

0 に答える 0