如何避免返回上一个标记有HTML id属性的部分并转到之前的网站?

问题描述 投票:0回答:1

我有一个单页网站,有多个部分(主页,服务,投资组合,联系人)。我正在使用id属性指向每个部分。

如何避免浏览器存储#home或我在历史记录中浏览的任何部分并将我带到以前的网站?

有没有办法实现它?

我搜索的是这与网站状态有关。因此,每次点击任何部分都会通过添加#id的名称来更新URL中的网站状态。可以通过在JavaScript中使用onhashchange函数来更改状态。我不确切知道如何使用它或者是否可以实现其他方法。

javascript ajax html5 dom
1个回答
2
投票

正如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

希望它可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.