javascript - 在 Twitch.tv 上监听 URL 变化

标签 javascript

当您浏览 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/

相关文章:

javascript - jQuery 插件未应用于选择元素

javascript - View 和 Controller 之间的绑定(bind)不起作用

javascript - 如何通过输入字段发送捕获的网络摄像头图像并保存到服务器

javascript - 旋转条形图数据标签格式

javascript - ionic 文本区域在删除时给出一个非空且非空的字符串

javascript - 返回后触发函数

javascript - 按列表中的编号/顺序查找 json 对象中的元素

javascript - 删除最后一个正斜杠和它之前的文本

javascript - 如何以正确的方式在 Angular 应用程序中的 Controller 之间共享数据

javascript - Canvas requestAnimationFrame 可能出现 "ghost functions"