在Twitch.tv上收听URL更改

Listening to URL change on Twitch.tv

本文关键字:URL 更改 Twitch tv      更新时间:2023-09-26

当您在Twitch上浏览所有游戏并点击某个游戏时,它会动态获取内容,而无需重新加载页面。url也从https://www.twitch.tv/directory更改为https://www.twitch.tv/directory/game/GameNameHere。如何收听此url更改?

我尝试在以下代码中使用window.onpopstate(在TamperMonkey脚本中),但事件没有启动。

$(document).ready(function() {
    console.log("Running"); // works
    window.onpopstate = function(e) {
        console.log("onpopstate triggered");
    };
});

编辑:经过进一步调查,似乎对于TamperMonkey,我必须使用unsafeWindow而不是window才能使onpopstate工作。但是,onpopstate仅适用于浏览器后退或前进时。其他情况请参阅已接受的答案。

请参阅此处:如何通过history.pushState获得有关历史更改的通知?

基本上,您需要拦截对pushState和replaceState的调用。如果不能做到这一点,可以(丑陋地)使用setInterval来监视URL的更改。