Этот сайт «меняет» страницы с помощью ajax-load ‡ , что означает, что ваш скрипт должен работать на всех страницах , потому что домашняя страница может быть «загружена» без HTMLGET
.(Tampermonkey срабатывает только один раз для стандартного GET
.)
Затем, в вашей функции паузы, проверьте, была ли домашняя страница перемещена во вкладку.Например:
// ==UserScript==
// @name Twitch Homepage Auto-Play Disable
// @match https://www.twitch.tv/*
// @require http://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==
/* global $, waitForKeyElements */
/* eslint-disable no-multi-spaces */
waitForKeyElements ("div.pl-overlay--loading", pauseVideo);
function pauseVideo () {
if (location.href === "https://www.twitch.tv/" && !document.querySelector("#icon_play") ) {
console.log ("===> Pausing video.");
document.querySelector('.qa-pause-play-button').click ();
}
}
Важно: Этот сценарий, основанный на коде ОП, также не позволит пользователю вручную воспроизводить видео на главной странице (Хорошо,ИМО, см. Сноску) .
Итак, если вы хотите иметь возможность нажимать кнопку «Воспроизвести» на этих видео, вам потребуется более сложная логика.Это выходит за рамки этого вопроса, задайте новый вопрос для этого, если необходимо.
‡ И это также чрезвычайно «занято» и раздражает.Возможно, лучшим пользовательским сценарием будет:
alert("This site saps your life and IQ. Close the tab and go for a walk (optional dog, recommended).")