4

私はAJAXで大いに機能するアプリケーションを持っています。ただし、ナビゲーション機能が必要です。URLをスプーフィングするために、location.hashを変更してURLを生成します。しかし、back / fwdを使用すると、URLのみが変更されますが、ページはリロードされません。hstory.backをオーバーライドしてページをリロードするにはどうすればよいですか。

4

4 に答える 4

7

この動作を実装するための継続的なポーリング以外の方法はわかりません。実装は次のようになります。

var lastHash = '';

function pollHash() {
    if(lastHash !== location.hash) {
        lastHash = location.hash;
        // hash has changed, so do stuff:
        alert(lastHash);
    }
}

setInterval(pollHash, 100);
于 2009-03-10T11:54:18.550 に答える
3

バックイベントを正確にキャプチャすることはできませんが、これらの問題のほとんどは解決されています。これも良いことですが、難しい問題です。

本当に単純な履歴(別名RSH)を見て、それを実装するか、それを調べて、どのように機能するかを確認してください。

于 2009-03-10T11:46:33.907 に答える
1

この質問に対する答えは、これらの質問に対する私の答えとほぼ同じになります。

要約すると、ハッシュ変更プロセス全体を説明し、それをajaxで使用する、おそらく見たいと思う2つのプロジェクトは次のとおりです。

  • jQuery履歴(ハッシュを使用してページの状態を管理し、変更にバインドしてページを更新します)。

  • jQuery Ajaxy(jQuery Historyのajax拡張機能。完全に目立たず、優雅に分解可能でありながら、完全なajax Webサイトを可能にします)。

于 2010-08-28T17:01:42.097 に答える
0

バルプトンの答えは本当に素晴らしいです。

しかし、ajax リクエストを処理する別の jQuery プラグインもあります。それはaddressです。

于 2010-11-09T02:07:54.847 に答える