если вы используете location.hash
вместо location.href
, указанное вами поведение не должно происходить.
Стандарт HTML5 определяет новые функции истории, например history.pushState()
, которые предлагают хорошую замену этому, но пока не все браузеры поддерживают его.
Если вы не хотите запускать свою собственную инфраструктуру, есть ряд плагинов javascript, которые предлагают эту функциональность, все упаковано для удобного использования в браузерах с немного отличающимися реализациями.Например, jquery history будет использовать более новые опции history
в браузерах, которые его поддерживают, и использовать хеш-адреса в браузерах, которые этого не поддерживают.