您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes the annoying carousel on the twitch.tv homepage
// ==UserScript== // @name Remove Carousel on twitch.tv home page // @namespace KrümelKing // @version 1.0 // @description Removes the annoying carousel on the twitch.tv homepage // @author https://linktr.ee/kruemelking // @match https://www.twitch.tv/ // @grant none // @run-at document-start // @license MIT // ==/UserScript== (function() { 'use strict'; //Check for homepage if (window.location.pathname !== '/') { return; } function aggressivelyRemoveCarouselAndAudio() { const carousel = document.querySelector('.front-page-carousel'); if (carousel) { carousel.style.display = 'none'; //Disables all video and audio elements on startpage if found function disableMediaElements(element) { if (element.tagName === 'VIDEO' || element.tagName === 'AUDIO') { element.muted = true; element.volume = 0; element.removeAttribute('src'); element.load(); element.pause(); element.style.display = 'none'; } for (let child of element.children) { disableMediaElements(child); } } disableMediaElements(carousel); //Overwrite play method carousel.querySelectorAll('video, audio').forEach(mediaElement => { mediaElement.play = function() { this.pause(); return new Promise(() => {}); }; }); } } //creates observer const observer = new MutationObserver((mutations) => { for (let mutation of mutations) { if (mutation.addedNodes.length) { aggressivelyRemoveCarouselAndAudio(); } } }); //Observer checks for changes const config = { childList: true, subtree: true }; //Immediate execution so no short noise function immediateAndRepeatedExecution() { aggressivelyRemoveCarouselAndAudio(); observer.observe(document.body, config); //Sometimes it reloads so do it multiple times for (let i = 1; i <= 5; i++) { setTimeout(aggressivelyRemoveCarouselAndAudio, i * 100); } } //yeah do it a lot if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', immediateAndRepeatedExecution); } else { immediateAndRepeatedExecution(); } //and on load window.addEventListener('load', aggressivelyRemoveCarouselAndAudio); })();