问题描述
我们在 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项目中如何实现。