Подтвердить что ты не робот

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

Я пытаюсь изменить хешированный URL (document.location.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".

4b9b3361

Ответ 1

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

window.location.hash = '#food';

Это заменит хеш URL с установленным для него значением.

Ссылка

Ответ 2

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

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

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