19 lines
463 B
JavaScript
19 lines
463 B
JavaScript
// hacky way to listen for pushState/replaceState changes
|
|
// per https://stackoverflow.com/a/25673911/680742
|
|
|
|
function wrapper (type) {
|
|
const orig = history[type]
|
|
return function () {
|
|
const result = orig.apply(this, arguments)
|
|
const e = new Event(type)
|
|
e.arguments = arguments
|
|
window.dispatchEvent(e)
|
|
return result
|
|
}
|
|
}
|
|
|
|
if (process.browser) {
|
|
history.pushState = wrapper('pushState')
|
|
history.replaceState = wrapper('replaceState')
|
|
}
|