ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で位置ハッシュの変更を確実に検出して処理するにはどうすればよいですか?

JavaScript で位置ハッシュの変更を確実に検出して処理するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-09 00:31:09786ブラウズ

How Can I Reliably Detect and Handle Location Hash Changes in JavaScript?

ロケーション ハッシュの変更の検出と処理

Ajax とハッシュを使用して Web アプリケーションをナビゲートすると、ドキュメント全体を再読み込みすることなく、ページ間のスムーズな移行が可能になります。ただし、特にブラウザの [戻る] ボタンを使用する場合、window.location.hash の変更を検出するのは困難な場合があります。

ネイティブ ブラウザのサポート

残念ながら、ブラウザはネイティブではサポートしていません。ハッシュの変更を検出するイベントをサポートします。ハッシュが変更されると、アドレス バーは自動的に更新されますが、JavaScript はこれらの変更を直接監視できません。

setInterval による Po ポーリング

考えられる解決策の 1 つは、setInterval( ) メソッドを使用して、現在のハッシュを定期的にチェックし、以前の値と比較します。差異が検出された場合は、必要なアクションを実行できます。この方法は機能しますが、非効率的である可能性があり、すべてのハッシュ変更をすぐにキャッチできない可能性があります。

jQuery イベントの抽象化 (更新された回答)

アプリケーションで jQuery を使用している場合、組み込みのイベント システムを活用できます。 jQuery は、ウィンドウ オブジェクトの 'hashchange' イベントをサポートしており、ブラウザ固有のサポート問題を抽象化します。

jQuery の 'hashchange' イベントを使用すると、次のようにイベント リスナーを登録できます。

$(window).on('hashchange', function() {
  // Code to handle hash change
});

jQuery は舞台裏で「hashchange」イベントのネイティブ サポートを検出し、利用できない場合はポーリング メカニズムを使用してトリガーします。ハッシュ上のイベントが変更されます。このアプローチにより、ハッシュ変更の処理が大幅に簡素化されます。

以上がJavaScript で位置ハッシュの変更を確実に検出して処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。