Вспомните скрипт 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 => Панель источников => Прослушиватели событий (не точки останова)