您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Cancels placeholder ads by refreshing the page(default) or refreshing the player(FFZ)
当前为
// ==UserScript== // @name Twitch - Refresh on Advert // @version 0.1 // @description Cancels placeholder ads by refreshing the page(default) or refreshing the player(FFZ) // @author CodingAndAlgorithm // @match https://www.twitch.tv/* // @namespace https://greasyfork.org/users/701035 // ==/UserScript== (function() { 'use strict'; var ffzResetPlayerButton = null; var waitLoadInterval = setInterval(WaitForLoadLoop, 500); function WaitForLoadLoop() { var playerControls = document.getElementsByClassName("player-controls tw-absolute tw-align-items-stretch tw-bottom-0 tw-flex tw-flex-column tw-full-width tw-overflow-hidden")[0]; if(playerControls == null) { // Player is still loading... } else { CheckForFFZ(); clearInterval(waitLoadInterval); setInterval(AdWatcherLoop, 250); } } function CheckForFFZ() { var ffzResetPlayerIcon = document.getElementsByClassName("ffz-player-icon ffz-i-t-reset")[0]; if(ffzResetPlayerIcon != null) { // Work our way upwards until we get to the button. ffzResetPlayerButton = ffzResetPlayerIcon.parentNode.parentNode.parentNode; } } function AdWatcherLoop() { if(IsAdRunning()) { ClearAd(); } } function IsAdRunning() { var videoOverlays = document.getElementsByClassName("tw-c-text-overlay"); for(var i = 0; i < videoOverlays.length; i++) { // Identify ad by checking all overlay captions. if(videoOverlays[i].textContent.startsWith("Ad 1 of")) { return true; } }; return false; } function ClearAd() { if(ffzResetPlayerButton == null) { location.reload(); } else { var clickEvent = document.createEvent ('MouseEvents'); clickEvent.initEvent ('dblclick', true, true); ffzResetPlayerButton.dispatchEvent (clickEvent); } } })();