在保持相同行为的同时隐藏 url 中的 #hash 片段?
Posted
技术标签:
【中文标题】在保持相同行为的同时隐藏 url 中的 #hash 片段?【英文标题】:Hide the #hash fragment from the url while keeping the same behavior? 【发布时间】:2016-07-31 17:56:48 【问题描述】:对于像这样的典型标签:
<a href="#sectionOne">One</a>
有没有办法保持跳转到对应id的相同行为,但不在url中显示片段标识符?
我知道我可以写一些 js 来处理所有这些,但似乎没有一种简单的方法可以做到这一点,但我找不到任何方法。
谢谢!
【问题讨论】:
这听起来像是一种反模式——我想大多数用户都希望片段保留在 URL 中(以便他们可以将其添加为书签等) 【参考方案1】:片段标识符是 URL 的一部分。如果目标 URL 中没有片段标识符,您将无法真正导航到由片段标识符表示的文档中的某个部分。
所以你能做的最好的就是防止浏览器导航到哈希,然后假装跳转。而这——至少是前者——需要 JS。
正如 cmets 中所述,由于 URL 片段的性质,您应该避免这样做,除非您有非常具体的理由这样做(例如,如果哈希是一个实现细节并且不打算公开给用户)。
【讨论】:
我只是在为网站寻找更“类似应用”的感觉。感觉好像毁坏网址在美学上令人不快。但是,是的,这是有道理的。我就不要再偷懒了,JS就行了~以上是关于在保持相同行为的同时隐藏 url 中的 #hash 片段?的主要内容,如果未能解决你的问题,请参考以下文章
与 Safari/Chrome 相比,相同 URL 的 UIWebView 行为不同
当在 url 中推送查询参数同时保持在同一路径上时,Vue.js 中的“NavigationDuplicated”异常是不是有任何解决方法