在Twitch.tv上收听URL更改
Listening to URL change on Twitch.tv
当您在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的更改。
相关文章:
- iFrame url更改时执行函数
- $http GET URL更改并查找错误的资源
- 用于自动将一种类型的URL更改为另一种类型
- 通过 JavaScript 捕获 URL 更改事件
- 如何在地址栏中的URL更改Firefox JPM时获得通知
- 在Twitch.tv上收听URL更改
- SEO友好的页面页面没有URL更改
- 对于多个视图,当URL更改时,我的子模板不会在Angular UI中加载
- 根据URL更改更改DOM元素类名
- 将 URL 更改为页面上单击的元素,而无需重新加载页面
- 当浏览器选项卡中的 url 更改时自动注销
- 提交请求时出现意外的 URL 更改
- 等待 Casper.js 中的 URL 更改
- 如何将URL更改为花式框内部URL
- 根据用于访问您的域的 URL 更改页面内容
- URL 更改事件 - JavaScript
- 在 url 更改时对 iframe 进行动画处理
- 如何在 Angular 中的 url 更改时仅重新加载一个控制器
- 选中并提交单选按钮上的 URL 更改
- 如何使用jquery(或javascript)检测没有哈希的url的url更改