2016-12-06 29 views
2

我相信你知道有些网站建立在“单页系统”上。使用JS/Jquery检测URL的变化(不只是哈希)

在这样的系统中点击链接后,网站不会将用户移动到另一个页面,而只是使用Ajax重新加载页面并更改URL。

我看到了很多有关$(window).on("hashchange")的答案,我知道这个技巧,但我需要检测整个URL更改(而不仅仅是哈希) - 所以我需要其他东西。

任何想法如何检测整个URL的变化?

+1

不会改变除哈希以外的网址导致页面重新加载?因此*不* SPA? – Taplar

+0

我认为你应该考虑使用[$ .unload](https://api.jquery.com/unload/)作为替代选项 –

+0

$ .unload不会发生,因为页面实际上并不“卸载” - 只有网址正在改变。例如,当我点击https://www.netflix.com/title/70178217上的播放按钮时,页面不会重新加载 - 它只是将网址更改为https://www.netflix.com/watch/80049213 –

回答

1

我没有找到如何检测整个URL的变化,但这个问题了解了我一些新的东西。

  1. 你可以用jQuery .on()检测到用户点击链接的情况下“页面重新载入仿真”并使用“页面重新载入事件”等事件。
  2. 现在我知道HTML5中的函数window.history.pushState()可以让您在不重新加载页面的情况下更改URL。

希望它能帮助别人。