当您浏览 Twitch 上的所有游戏并单击某个游戏时,它会动态获取内容而无需重新加载页面。网址也从 https://www.twitch.tv/directory
更改为 https://www.twitch.tv/directory/game/GameNameHere
。我如何收听此 url 更改?
我尝试在以下代码(在 TamperMonkey 脚本中)中使用 window.onpopstate
,但事件没有触发。
$(document).ready(function() {
console.log("Running"); // works
window.onpopstate = function(e) {
console.log("onpopstate triggered");
};
});
编辑:经过进一步调查,似乎对于 TamperMonkey,我不得不使用 unsafeWindow
而不是 window
来获取 onpopstate
开始工作。但是,onpopstate
仅在浏览器后退或前进时起作用。其他情况请引用已接受的答案。
最佳答案
看这里: How to get notified about changes of the history via history.pushState?
基本上,您需要拦截对 pushState 和 replaceState 的调用。如果您不能这样做,您可以(丑陋地)使用 setInterval 来监视 URL 的更改。
关于javascript - 在 Twitch.tv 上监听 URL 变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36673011/