我有一个单页网站,有多个部分(主页,服务,投资组合,联系人)。我正在使用id
属性指向每个部分。
如何避免浏览器存储#home
或我在历史记录中浏览的任何部分并将我带到以前的网站?
有没有办法实现它?
我搜索的是这与网站状态有关。因此,每次点击任何部分都会通过添加#
和id
的名称来更新URL中的网站状态。可以通过在JavaScript中使用onhashchange
函数来更改状态。我不确切知道如何使用它或者是否可以实现其他方法。
正如Aditya Thakur指出的那样。你可以使用window.history.replaceState()
这是一个示例代码:
<a href="#home" onclick="handleLink(event, this)">Home</a>
而handleLink功能:
function handleLink(event, element) {
event.preventDefault();
window.history.replaceState(null, "Title", element.href);
}
replaceState不会在浏览器历史记录中添加新条目。因此,当您单击浏览器上的后退按钮时,您将返回上一页。
这是文档:https://developer.mozilla.org/en-US/docs/Web/API/History_API#The_replaceState()_method
希望它可以帮助!