Как я могу заменить хэш URL-адреса окна другим ответом?

Я пытаюсь изменить хэшированный URL (документ.местоположение.hash) с помощью метода replace, но он не работает.

$(function(){
 var anchor = document.location.hash;
 //this returns me a string value like '#categories'

  $('span').click(function(){

     $(window).attr('url').replace(anchor,'#food');
     //try to change current url.hash '#categories'
     //with another string, I stucked here.
  });

});

Я не хочу изменять/обновлять страницу, Я просто хочу заменить URL без каких-либо ответов.

примечание: Я не хочу решать это с помощью решения href="#food".

2 ответов


использовать location или window.location вместо document.location поскольку последний является нестандартным.

window.location.hash = '#food';

это заменит хэш URL-адреса значением, которое вы для него установили.

ссылка


Вы можете предпочесть ответ этот вопрос.

разница в том, что с history.replaceState() вы не прокручиваете якорь, только заменяете его на панели навигации. Он поддерживается всеми основными браузерами, источник.

history.replaceState(undefined, undefined, "#hash_value")