繁体   English   中英

检测 SPA 中的 URL 更改

[英]Detect an URL change in a SPA

我想听听不是我维护的 SPA 中的路径变化。

我在这里找到了一个解决方案: https : //stackoverflow.com/a/44819548/7042552

但是,对我来说似乎有点“hacky” - 但我的实现仍然是这样的:

let url = window.location.href;

['click','popstate', 'onload'].forEach( evt =>
        window.addEventListener(evt, function () {
            requestAnimationFrame(()=>{
                if (url !== location.href) {
                    // do stuff
                }
                url = location.href;
            });
        }, true)
    );

是否有更好或更通用的方法来监听 SPA 中的页面加载?

这个https://stackoverflow.com/a/41825103/7042552为我完成了这项工作,令人难以置信的是,我们仍然必须在 2018 年使用这些黑客。

现在大多数浏览器都支持MutationObserver ,您可以使用这样的代码来检测 SPA 中的 URL 更改:

var previousUrl = '';
var observer = new MutationObserver(function(mutations) {
  if (location.href !== previousUrl) {
      previousUrl = location.href;
      console.log(`URL changed to ${location.href}`);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM