您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically switch on dark mode. Useful for incognito tabs.
// ==UserScript== // @name - youtube.com - Turn On Dark Mode // @namespace Yury Ershov // @match *://www.youtube.com/* // @run-at document-idle // @noframes // @grant none // @version 1.0 // @author Yury Ershov // @description Automatically switch on dark mode. Useful for incognito tabs. // @inject-into content // ==/UserScript== (function() { 'use strict'; let IsDark = ()=>!!document.querySelector("html[dark]"); let IsSpinner = ()=>{ let e = document.querySelector("ytd-popup-container iron-dropdown div#spinner"); return !e || getComputedStyle(e).display != "none"; } let HasSettings = ()=>!!document.querySelector("button#button[aria-label=Settings]"); let ClickSettings = ()=> [...document.querySelectorAll("button#button[aria-label=Settings]")].forEach(e=>e.click()); let ClickDarkModeMenu = ()=> [...document.querySelectorAll("ytd-toggle-theme-compact-link-renderer")]. filter(e=>e.innerText=="Dark theme: Off"). forEach(e=>e.click()); let ClickDarkModeSwitch = ()=> [...document.querySelectorAll("div#submenu div#caption-container")]. filter(e=>e.innerText=="DARK THEME"). forEach(e=> [...e.querySelectorAll("div#toggleButton")].forEach(e=>e.click())) if (IsDark()) return; let WaitSettings = ()=>{ if (!HasSettings()) { setTimeout(WaitSettings, 300); return; } ClickSettings(); let WaitNoSpinner = ()=>{ if (IsSpinner()) { setTimeout(WaitNoSpinner, 1000); return; } ClickDarkModeMenu(); ClickDarkModeSwitch(); setTimeout(()=>document.body.click(), 500); }; setTimeout(WaitNoSpinner, 500); }; setTimeout(WaitSettings, 1000); })();