Вспомните скрипт Tampermonkey при изменении местоположения страницы

Хорошо, я хочу знать, возможно ли вызвать скрипт Tampermonkey, когда пользователь меняет свое местоположение (но совпадение все еще активно). Например, мои скрипты перехватывают сайт YouTube.

Мне нужно сделать так, чтобы скрипт менял сам себя при смене видео, мой настоящий скрипт:

// ==UserScript==
// @name        xxx
// @namespace    xxx
// @version      1.0
// @description  xxx
// @author       Ikillnukes
// @match        https://www.youtube.com/*
// @match        https://youtu.be/*
// @grant        none
// ==/UserScript==

console.log("Tampermonkey hook!");
var script = document.createElement('script');
script.src = document.location.protocol+"//xxx";
(document.body || document.head || document.documentElement).appendChild(script);

Как видите, я вызываю console.log для его отладки, и он вызывается, когда я обновляю или загружаю веб-страницу в первый раз. Но однажды я меняю видео, оно больше не вызывается, и это то, чего я хочу избежать.

Я также рассмотрел это: http://tampermonkey.net/documentation.php и я ничего не нашел, может быть, я рассмотрел это слишком быстро?

Так что, есть предложения?

1 ответ

Решение

Используйте пользовательские события YouTube SPF, определенные сценарием YouTube:

window.addEventListener("spfrequest", function(e) { console.log("requesting new page") });
window.addEventListener("spfprocess", function(e) { console.log("new page is processed") });
window.addEventListener("spfdone", function(e) { console.log("new page is displayed") });

Совет пользователям Chrome найти такие события:
Используйте DevTools => Панель элементов => Панель прослушивателей событий

На более новых версиях Chrome:
Используйте DevTools => Панель источников => Прослушиватели событий (не точки останова)

Другие вопросы по тегам