Ссылка , которую вы дали , никогда не имеет <track>
узла , по крайней мере для меня (не вошел в систему, а не создатель видео).
Тем не менее, это может быть стандартной проблемой AJAX. То есть, если узел добавляется через javascript (AJAX), сценарий Tampermonkey будет завершен до загрузки целевого узла.
Используйте для этого стандартные приемы с поддержкой ajax. В одну сторону:
// ==UserScript==
// @name Openload.co, Report on track nodes
// @match *://openload.co/embed/*
// @match *://interactive-examples.mdn.mozilla.net/pages/tabbed/track.html
// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// @grant GM.getValue
// ==/UserScript==
//- The @grant directives are needed to restore the proper sandbox.
waitForKeyElements ("track", reportTrackNode);
//-- For Mozilla page, which uses shadow DOM:
waitForKeyElements ("shadow-output", reportTrackNodeWithinShadowDOM);
function reportTrackNode (jNode) {
console.log ("Found <track>:", jNode[0]);
}
function reportTrackNodeWithinShadowDOM (jNode) {
var sr = jNode[0].shadowRoot;
var trck = $(sr.childNodes).find ("track");
if (trck.length === 0) return true; // Keep waiting.
console.log ("Found <track>:", trck[0]);
}
Обратите внимание, что приведенный выше код работает в Tampermonkey, Violentmonkey и более ранних версиях Greasemonkey. Он должен работать в Greasemonkey 4+, но этот двигатель сильно сломан, поэтому никаких гарантий.
Вы можете увидеть, что код находит трек, когда он существует (даже в теневом DOM), установив скрипт и посетив эту демонстрационную страницу видео MDN .