jQuery:如何检测路径更改?

时间:2018-04-03 15:09:18

标签: jquery

我正在尝试通过扩展程序在LinkedIn上加载脚本。但是,每次单击标题中的一个链接时,它看起来都是使用AJAX渲染主容器。

我有这个,这不起作用:

$(function() {
  console.log("LOADED");
  $(window).on("load", () => {
    $(window).on("hashchange", function(e) {
      console.log("PATH CHANGED") // I want to print this every time the route changes and scrape the updated DOM
    });
  });
});

这是有道理的,因为它不使用哈希。我不知道如何为路径更改添加侦听器+刮掉更新的dom。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:-1)

在没有重新加载的情况下,浏览器中URL的更改由history.pushstate

完成
 history.pushState({id: 'SOME ID'}, '', "http://thisisthenewURL.com/whateva");

您可以使用以下代码收听此事件:

 window.onpopstate = function (event) {
  // do stuff here
 }

以下帖子已回答: How to detect when history.pushState and history.replaceState are used?