私はシングルページアプリケーション(Angularのui-router
のようなもの)でナビゲートするためのルータを実装しています。ルーティングは、ブラウザの場所のハッシュを変更することによって行われます。ブラウザのハッシュナビゲーションを無効にする
宣言されていないルートに移動することは不可能です。したがって、#/foo
ルートのみを宣言し、現在は#/foo
にあり、ハッシュを#/bar
に変更しようとすると、ブラウザはハッシュを#/foo
に戻す必要があります。
しかし、その後、#/bar
はブラウザの履歴に残ります。問題は、ハッシュナビゲーションの履歴変更を完全に防ぐ方法です。
私は
$(window).on('hashchange', function(event) {
event.preventDefault();
return false;
})
を試みたが、それはうまくいきませんでした。