如何在JavaScript中检测URL的哈希部分之后是否已更改

253

如何在JavaScript中检查URL是否已更改?例如,像GitHub这样使用AJAX的网站会在#符号后附加页面信息以创建唯一的URL而无需重新加载页面。检测URL更改的最佳方法是什么?

  • 是否再次调用onload事件?
  • 是否有URL的事件处理程序?
  • 还是必须每秒检查一次URL以检测更改?

2
对于未来的访问者,2018年@aljgom提供的新答案是最佳解决方案:https://dev59.com/4Gw15IYBdhLWcg3wzO1_#52809105 - Redzarf
这是一个使用新构建更好的答案。https://dev59.com/sVQJ5IYBdhLWcg3wsIBY - Jahan Zinedine
这是一个更好的答案,使用了新的构造 https://stackoverflow.com/questions/53303519/detect-an-url-change-in-a-spa - undefined
21个回答

-2

另一种简单的方法是通过为页面上的锚标记添加一个类名并添加点击事件来检测其是否被点击,然后锚标记必须采用此格式。

<a href="#{page_name}">{Link title}</a>

接下来,您可以使用 "window.location.href" 获取 URL 数据(即 #page_name),然后通过 AJAX 请求将其发送到服务器以获取所请求页面的 HTML 数据。

然后,在服务器端,您可以在最喜欢的后端语言中实现一个 switch 语句,以按客户端请求呈现每个页面。

简单易行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接