Javascript 如何避免将特定元素添加到浏览器历史记录中?

Javascript 如何避免将特定元素添加到浏览器历史记录中?,javascript,url,Javascript,Url,我希望避免URL中的#hash实际添加到浏览器历史记录中。因此,每次向URL添加新的哈希时,都要将其从历史记录中删除(也可以从URL中删除,但这不是真正的问题)。我该怎么做 我想要实现这一点的原因是:我有一个包含大量按钮的页面,每个按钮都会触发一个模式,每次单击其中一个按钮时,都会向URL(以及历史记录)添加一个哈希值,因此返回按钮(可能)在浏览器实际转到上一页之前,需要单击多次。您可以使用history.replaceState(),它更改会话历史记录中的当前条目 history.replac

我希望避免URL中的
#hash
实际添加到浏览器历史记录中。因此,每次向URL添加新的哈希时,都要将其从历史记录中删除(也可以从URL中删除,但这不是真正的问题)。我该怎么做


我想要实现这一点的原因是:我有一个包含大量按钮的页面,每个按钮都会触发一个模式,每次单击其中一个按钮时,都会向URL(以及历史记录)添加一个哈希值,因此返回按钮(可能)在浏览器实际转到上一页之前,需要单击多次。

您可以使用history.replaceState(),它更改会话历史记录中的当前条目

history.replaceState( {} , 'foo', '/foo' );

您可以使用history.replaceState(),它更改会话历史记录中的当前条目

history.replaceState( {} , 'foo', '/foo' );

你想要一个网页来修改别人电脑的内容吗?我可以问你为什么要这样做吗,可能是有用的信息?为什么模态首先添加哈希?@Bergi这是一个好问题。@Bergi因为模态是由一个与模态组件id具有相同href属性的按钮触发的。我正在使用materializecss框架。你想要一个网页来修改某人计算机的内容吗?我可以问你为什么要实现这样的sumthin,可能是有用的信息?为什么模态首先添加哈希?@Bergi这是一个好问题。@Bergi因为模态是由一个与模态组件id具有相同href属性的按钮触发的。我使用的是物化ECSS框架。你能更具体一点吗?你能更具体一点吗?