我看过有关在单页应用程序上检测导航的stackoverflow帖子,并且有各种解决方案。其中之一是使用window.onhashchange检测路径更改(基于哈希的路径)。

我的问题是这样的:

除了检测路径更改(基于哈希的路径)以外,window.onhashchange是否还用于其他用途?

最佳答案

如何运作?

window.onhashchange函数用于处理hashchange事件。从the MDN docs


  URL的片段标识符已更改(URL的以hashchange符号开头和之后的部分)时,将触发#事件。


因此window.onhashchange函数用于检测片段标识符何时更改,仅此而已。

为什么/何时应该使用它?

您使用window.onhashchange来检测片段标识符何时更改,因此“何时应该使用window.onhashchange?”问题与“何时应使用片段标识符?”有关。片段标识符的主要用法是引用(链接)到页面的特定部分,或者Wikipedia放置它的方式:


  在计算机超文本中,片段标识符是一串字符串,它表示从属于另一个主要资源的资源。主要资源由统一资源标识符(URI)标识,并且片段标识符指向从属资源。
  
  井号#引入的片段标识符是文档URL的可选最后部分。它通常用于标识该文档的一部分。 ...


它还用于促进单页应用程序中的导航以及其他各种原因(存储状态等)。您可以在Wikipedia上找到非常详尽的片段标识符用法列表。

09-25 17:06