我有一个名为address
的示例html页面
4
我已添加警报,以便我可以知道页面何时重新加载。
如果我单击第一个链接,则URL会按预期更改为pound.html
。如果单击第二个链接,它将再次更改为<body onload="alert('loading')">
<a href="#something">something after #</a><br />
<a href="#">nothing after #</a><br />
<a href="">no # at all</a><br >
</body>
,而无需重新加载。但是,如果我单击第三个链接,虽然它会将网址放回pound.html#something
(没有pound.html#
),但它会重新加载页面。
在启动时,我总是看到没有pound.html
的单页应用程序,但是一旦转到其他地方然后返回首页,您将得到#
。有没有办法使它从URL中删除#
而无需重新加载页面(例如当您返回首页时)?
如果您从#
开始,然后单击第一个链接并转到#
,则浏览器后退箭头可以使您回到pound.html
,而无需重新加载页面。
如评论中所述,How to remove the hash from window.location (URL) with JavaScript without page refresh?
这里有很多javascript解决方案但是,有人知道是否有删除链接的方法吗?
答案 0 :(得分:0)
怎么样:
window.location.hash = '1' // add the `#1` to URL (adds hash if its not already there)
window.location.hash = '' // just leave the `#` symbol in URL
window.history.replaceState(null,document.title,location.href.slice(0, -1))
它将从您的网址中删除最后一个字符(在本例中为#
)