我正在尝试使用replace方法更改散列URL(document.location.hash),但它不起作用。
$(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”解决方案来解决这个问题。
答案 0 :(得分:99)
使用location
或window.location
代替document.location
,因为后者是非标准的。
window.location.hash = '#food';
这将使用您为其设置的值替换URL的哈希值。
答案 1 :(得分:22)
您可能更喜欢this question的答案。
不同之处在于,history.replaceState()
不会滚动到锚点,只能在导航栏中替换它。它受到所有主流浏览器source的支持。
history.replaceState(undefined, undefined, "#hash_value")