在Javascript中,有没有办法知道路径改变了?
In Javascript, is there a way to know the path is changed?
我想知道,是否有办法知道(使用事件)路径已更改?我调查了 onpopstate 和 onhashchange。两者都不是我要找的。我目前的要求是,在单页应用程序中:
- 当url从一个变成另一个时,我想调用一个函数。
- 初始加载页面时,调用当前页面的函数。
浏览器中的原生 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')
我想知道,是否有办法知道(使用事件)路径已更改?我调查了 onpopstate 和 onhashchange。两者都不是我要找的。我目前的要求是,在单页应用程序中:
- 当url从一个变成另一个时,我想调用一个函数。
- 初始加载页面时,调用当前页面的函数。
浏览器中的原生 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')