これを実際に行う唯一の方法(および「reallysimplehistory」がこれを行う方法)は、現在のハッシュをチェックし続ける間隔を設定し、それを以前と比較して、これを行い、サブスクライバーに変更をサブスクライブさせますハッシュが変更された場合に発生するイベントです。完全ではありませんが、ブラウザはこのイベントをネイティブでサポートしていません。
この回答を最新の状態に保つための更新:
jQueryを使用している場合(今日のほとんどは基本的なものです)、優れたソリューションは、jQueryが提供する抽象化を使用して、イベントシステムを使用し、ウィンドウオブジェクトのハッシュ変更イベントをリッスンすることです。
$(window).on('hashchange', function() {
//.. work ..
});
ここでの良い点は、ハッシュ変更のサポートについても心配する必要がないコードを記述できることですが、あまり知られていないjQuery機能jQuery特別なイベントの形で、何らかの魔法をかける必要があります。
この機能を使用すると、基本的には、何らかのイベント(イベントへのバインドなど)で誰かがイベントを使用しようとしたときに、何らかのイベントのセットアップコードを実行できます。
このセットアップコードでは、ネイティブブラウザーのサポートを確認できます。ブラウザーがこれをネイティブに実装していない場合は、単一のタイマーを設定して変更をポーリングし、jQueryイベントをトリガーできます。
これにより、コードがこのサポートの問題を理解する必要から完全に解放されます。この種の特別なイベントの実装は簡単です(単純な98%の動作バージョンを取得するため)が、なぜ他の誰かがすでにそうしているのにそうするのですか。