当您浏览Twitch上的所有游戏并单击一个游戏时,它会动态获取内容,而无需重新加载页面。网址也从https://www.twitch.tv/directory
更改为https://www.twitch.tv/directory/game/GameNameHere
。如何收听此网址更改?
我尝试在以下代码(在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的更改。