2016-04-17 2 views
2

Когда вы просматриваете все игры на Twitch, и вы нажимаете на игру, она динамически получает контент, не перезагружая страницу. URL-адрес также изменяется от https://www.twitch.tv/directory до https://www.twitch.tv/directory/game/GameNameHere. Как я могу слушать это изменение URL?Прослушивание изменения URL-адреса на Twitch.tv

Я попытался использовать window.onpopstate в следующем коде (в сценарии TamperMonkey), но событие не срабатывает.

$(document).ready(function() { 
    console.log("Running"); // works 

    window.onpopstate = function(e) { 
     console.log("onpopstate triggered"); 
    }; 
}); 

Редактировать: При дальнейшем рассмотрении оказывается, что для TamperMonkey, я должен был использовать unsafeWindow вместо window, чтобы получить onpopstate работать. Тем не менее, onpopstate работает только тогда, когда браузер возвращается назад или вперед. Пожалуйста, ознакомьтесь с принятым ответом на другие случаи.

ответ

1

Смотрите здесь: How to get notified about changes of the history via history.pushState?

В принципе, вы хотите, чтобы перехватить вызовы в PushState и replaceState. Если вы не можете этого сделать, вы можете (уродливо) использовать setInterval для отслеживания URL-адресов для изменений.

Смежные вопросы