location.hash
是 JavaScript 中 Web API window.location
对象的一个属性,它返回 URL 的 hash 部分(从 ‘#’ 符号开始的部分)。这个属性常常用于单页面应用(SPA, Single Page Application)中,通过改变 URL 的 hash 来模拟页面跳转,同时不触发页面重载。
用法:
- 获取 hash:
var hash = window.location.hash;
console.log(hash); // 输出如 "#section1"
- 设置 hash:
当你设置location.hash
时,浏览器会自动滚动到与新的 hash 对应的页面元素位置(如果该元素存在的话)。
window.location.hash = "section2";
此时,URL 会变为 .../currentpage.html#section2
,并且浏览器会尝试滚动到 id 为 “section2” 的元素。
类似的方法:
location.reload()
:此方法用于重新加载当前页面。location.replace()
:此方法用于替换当前浏览器历史记录中的当前页面,并用新的 URL 替换它。当用户点击浏览器的后退按钮时,他们不会回到之前的页面。location.assign()
:此方法加载新的文档,这与直接设置window.location
或location.href
的效果相同。location.href
:这是一个获取或设置整个 URL 的属性。与location.hash
不同,它改变的是整个 URL,不仅仅是 hash 部分。history.pushState()
和history.replaceState()
:这两个方法允许你对浏览器的历史记录进行操作,而不重新加载页面。它们常常与popstate
事件一起使用,以在 URL 变化时执行某些操作。这些方法在创建更复杂的单页面应用时非常有用。
虽然 location.hash
在某些情况下很有用,但它也有一些限制。例如,它可能不适用于所有类型的导航,特别是在需要服务器参与的情况下。在选择使用 location.hash
还是其他导航方法时,应考虑到这些限制和用例的具体需求。
@漏刻有时