当网址的任何部分发生变化时,是否会触发某个事件?
多次询问网址更改,但一般答案已过时(〜2010年)。
现有答案摘要:
您可以在某些情况下使用popstate
(它会触发所有网址更改)。
您可以在导航页面时使用onbeforeunload
(并卸载其资源)。
您可以使用hashchange
事件来监视哈希片段更改。
否则似乎传统的答案仍然是民意调查以更改window.location。
投票仍然是 2016 的最佳解决方案吗?令人惊讶的是,鉴于location
及其API中的其他进展,没有事件发生,所以这就是我发布此问题的原因。
答案 0 :(得分:0)
使用history.pushState()时的事件应足以对href更改采取操作:
window.addEventListener('popstate', listener);
const pushUrl = (href) => {
history.pushState({}, '', href);
window.dispatchEvent(new Event('popstate'));
};