Ответ 1
Используйте location
или window.location
вместо document.location
, поскольку последний является нестандартным.
window.location.hash = '#food';
Это заменит хеш 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".
Используйте location
или window.location
вместо document.location
, поскольку последний является нестандартным.
window.location.hash = '#food';
Это заменит хеш URL с установленным для него значением.
Вы можете предпочесть ответ этого вопроса.
Отличие состоит в том, что при history.replaceState()
вы не прокручиваете якорь, а заменяете его только на панели навигации. Он поддерживается всеми основными браузерами, source.
history.replaceState(undefined, undefined, "#hash_value")