Ich implementiere Router für die Navigation in der Single-Page-Anwendung (etwas wie Angulars ui-router
). Das Routing wird durchgeführt, indem der Hash des Browser-Standorts geändert wird.Verhindern Hash-Navigation im Browser
Es sollte nicht möglich sein, zu einer nicht deklarierten Route zu navigieren. Also, wenn ich nur #/foo
Route deklariert habe, und derzeit bin ich auf #/foo
und versuche, den Hash zu #/bar
zu ändern, sollte der Browser Hash auf #/foo
zurücksetzen.
Allerdings wird danach #/bar
in der Browserhistorie bleiben. Die Frage ist: Wie kann man verhindern, dass sich die Historie bei der Hash-Navigation ändert?
Ich habe
versucht$(window).on('hashchange', function(event) {
event.preventDefault();
return false;
})
aber es hat nicht funktioniert.