如何使浏览器后退按钮跳过内页导航并返回上一页

问题描述

我们在 MVC Web 应用程序的某些页面上使用了多个选项卡,在浏览了几个选项卡然后单击后退按钮后,URL 会相应更改,但您必须单击所有选项卡,直到您转到上一页

我想要做的是,只要我点击浏览器的后退按钮,就可以返回上一页,所以基本上跳过所有包含“#”的 URL。例如,如果我像 page2#tab3 这样: page1 -> page2#tab1 -> page2#tab2 -> page2#tab3,我想page2#tab3 -> page1点击后退按钮。

此外,我们已经有了自定义导航按钮,但我们也想实现这一点。

解决方法

您可以使用 onhashchange 侦听器来满足您的自定义需求。请检查 https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onhashchange

您也可以根据需要修改 HistoryAPI。请检查 https://developer.mozilla.org/en-US/docs/Web/API/History

,

在反应中,您可以使用 useHistory 钩子来完成。但是不知道在普通的JS项目中如何实现。