4

onchangeを検出するにはどうすればよいですか。window.location.hashたとえば、次のようにできます。

if(window.location.hash.hasChanged())
{
   // ajax stuff
}
else
{
   // nothing, no hash has been changed (without any window reload)
}

編集などでハッシュを変更し、編集後に Enter キーを押してハッシュを変更すると、何も起こらず、ウィンドウのリロード時にのみハッシュの変更が検出されます。

4

2 に答える 2

17

最近のブラウザ (FF3.6+、IE8、Chrome) は、window オブジェクトの「hashchange」イベントをサポートしています。使用例については、 MDC: window.onhashchangeを参照してください。単純な非同期リッスンは次のようになります。

window.onhashchange = function() {
   // do something awesome here
};

古いブラウザをサポートする実装が必要な場合は、物事がすぐに複雑になるため、他の誰かのライブラリまたはプラグインを使用することをお勧めします -いくつかの提案については、この質問への回答を参照してください。

于 2011-01-21T04:18:03.760 に答える
2

Ben Alman のhashchange jQuery プラグインは、ハッシュの変更を監視する機能を提供します。

于 2011-01-21T03:43:29.467 に答える