当您在Twitch上浏览所有游戏并点击游戏时,它会动态获取内容而无需重新加载页面。该网址也会从<p id="live"></p>
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script>
$.ajax({
url:'https://api.twitch.tv/kraken/streams/DailyMafia',
dataType:'json',
success:function(stream) {
document.getElementById("live").innerHTML="CURRENTLY LIVE WITH ".concat(parseInt(stream.stream.viewers), " VIEWERS.");
},
error:function() {
document.getElementById("live").innerHTML="CURRENTLY OFFLINE.";
}
});
</script>
更改为https://www.twitch.tv/directory
。我怎么能听到这个网址改变?
我尝试在以下代码中使用https://www.twitch.tv/directory/game/GameNameHere
(在TamperMonkey脚本中),但事件并未触发。
window.onpopstate
修改:经过进一步调查,似乎对于TamperMonkey,我必须使用$(document).ready(function() {
console.log("Running"); // works
window.onpopstate = function(e) {
console.log("onpopstate triggered");
};
});
代替unsafeWindow
才能让window
生效。但是,onpopstate
仅适用于浏览器返回或转发的情况。其他案例请参考接受的答案。
答案 0 :(得分:1)
见这里: How to get notified about changes of the history via history.pushState?
基本上,您需要拦截对pushState和replaceState的调用。如果你不能这样做,你可以(丑陋地)使用setInterval监视更改的URL。