在Javascript中,有没有办法知道路径改变了?

In Javascript, is there a way to know the path is changed?

我想知道,是否有办法知道(使用事件)路径已更改?我调查了 onpopstate 和 onhashchange。两者都不是我要找的。我目前的要求是,在单页应用程序中:

  1. 当url从一个变成另一个时,我想调用一个函数。
  2. 初始加载页面时,调用当前页面的函数。

浏览器中的原生 API 可以实现这些吗?

监听 load 事件,该事件在页面加载完成时触发:

function code(){
    console.log('page loaded')
}

window.addEventListener('load', code)

要监听 pushState 变化,您可以覆盖默认的 pushState 行为:

function trigger() {
  console.log('state change')
}

var pushState = history.pushState;
history.pushState = function(state) {
  if (typeof history.onpushstate == "function") {
    history.onpushstate({state: state});
  }
  trigger()
  return pushState.apply(history, arguments);
};

history.pushState(null, null, '/endpoint')