Skip to content

Detect an URL change in a SPA

I would like to listen to path changes in a SPA which is not maintained by me.

I found one solution here:

But still, it seems kind of “hacky” to me – but still my implementation is like this:

let url = window.location.href;

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

Is there a better or more generic way to listen for page loads in a SPA?


This did the job for me, unbelievable we still have to use these hacks in 2018.