javascript - 如何避免返回到带有 HTML id 属性标记的上一个部分,而是转到上一个网站?
问题描述
我有一个包含多个部分(主页、服务、投资组合、联系人)的单页网站。我正在使用该id
属性指向每个部分。
如何避免浏览器存储该#home
部分或我在历史记录中浏览的任何部分并将我带到上一个网站?
有没有办法实现它?
我搜索的是这与网站状态有关。因此,每次点击任何部分都会更新 URL 中的网站状态,#
方法是添加id
. onhashchange
可以使用JavaScript中的函数来更改状态。我不确切知道如何使用它,或者是否可以实施另一种方法。
解决方案
正如 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
希望它可以帮助!
推荐阅读
- dart - 等待第一个流事件作为未来?
- sql - SQL Server:创建唯一键但其中一列可能有多个值
- android - 无法从 Activity 调用 BroadcastReceiver
- python - 如何在一行中分配变量中的for循环值
- elixir - 在 Elixir 中的列表上“滑动窗口”
- google-analytics - 可以使用相同的跟踪 ID 创建多个跟踪器吗?
- ios - Swift 4,错误,UITableViewController perfrom segue,线程 1:信号 SIGABRT
- sql - SQL - 左连接
- php - 在反应内部使用 laravel 刀片本地化
- vba - vba:在另一个正在运行时运行一个命令按钮