1

ナビゲーションにハッシュバンギングを使用するajaxアプリケーションがあり、アプリケーションのナビゲーションスタックを追跡しています。ユーザーがブラウザの戻るボタンを押したのか、同じURLへのリンクを押しただけなのかを判断する良い方法はありますか。

例:ユーザーがhttp://mysite.com/#homeにいると仮定し、http: //mysite.com/#settingsへのリンクを押します。この新しい設定ページには、http // mysite.com /#homeへのリンクが含まれています。ユーザーがリンクを押してホームに戻るかどうか、またはユーザーがブラウザーの戻るボタンを押すかどうかを確認するにはどうすればよいですか。

私は内部的に履歴スタックを追跡しているので、スタックのURLをプッシュするかポップするかを知りたいです。

1つの解決策は、カウンターまたはタイムスタンプでURLをポイズニングすることですが、回避することをお勧めします。

4

2 に答える 2

1

hashbangを忘れて、html5pushStateを使用します。ページ履歴が変更されると、popStateイベントが発生します。

于 2012-06-16T11:46:33.920 に答える
0

ユーザーがリンクを押したかどうかを簡単に確認できます。

var link = document.getElementById("backLink"), pressedBackLink;
link.addEventListener("click", function() {
    pressedBackLink = true;
    // Do stuff here
}, false);

function hashChange() {
    if (pressedBackLink) {
        pressedBackLink = false;
        // Do other stuff
    }
}

attachEventIE<9に使用することを忘れないでください。あなたのリンクにはidがあり、イベント"backLink"のリスナーは関数だと思います。haschangehashChange

ブラウザの戻るボタンについては、それを判断する方法はありません。ユーザーは、順番にたどることなく、進むか、履歴上の他のリンクをクリックすることもできます。その中であなたの時間を無駄にしないでください。

于 2012-06-16T11:03:29.423 に答える