首页 > 解决方案 > 如何避免返回到带有 HTML id 属性标记的上一个部分,而是转到上一个网站?

问题描述

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

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

有没有办法实现它?

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

标签: javascriptajaxhtmldom

解决方案


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

希望它可以帮助!


推荐阅读