您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Invert Dark/Light Mode All Websites
// ==UserScript== // @name Dark Mode (Weaboo) // @namespace http://tampermonkey.net/ // @version 2.1.1 // @description Invert Dark/Light Mode All Websites // @author weaboo // @license aanriski™ - ©weaboo // @match *://*/* // @grant GM_addStyle // @run-at document-start // ==/UserScript== (function () { 'use strict'; const styleId = 'invert-mode-style'; const invertCSS = ` html { filter: invert(1) hue-rotate(180deg) !important; background: #000 !important; } img, video, iframe, picture, canvas, object { filter: invert(1) hue-rotate(180deg) !important; } `; const style = document.createElement('style'); style.id = styleId; style.textContent = invertCSS; const tryInject = () => { const head = document.head || document.getElementsByTagName('head')[0]; if (head && !document.getElementById(styleId)) { head.appendChild(style); } else { setTimeout(tryInject, 0); } }; tryInject(); })(); /** (function () { 'use strict'; const styleId = 'universal-dark-mode-style'; const darkCSS = ` html, body { background-color: #121212 !important; color: #e0e0e0 !important; } *, *::before, *::after { background-color: transparent !important; color: inherit !important; border-color: #444 !important; box-shadow: none !important; text-shadow: none !important; } a, a * { color: #80cbc4 !important; } header, footer, nav, section, aside, article, div { background-color: #1e1e1e !important; } img, video { filter: brightness(0.8) contrast(1.2) !important; } ::selection { background: #555 !important; color: #fff !important; } input, textarea, select, button { background-color: #2a2a2a !important; color: #e0e0e0 !important; border: 1px solid #666 !important; } [style*="background"], [style*="background-color"] { background-color: #1a1a1a !important; } `; // Langsung injeksi style ke <head>, walaupun <head> belum ada const style = document.createElement('style'); style.id = styleId; style.textContent = darkCSS; const tryInject = () => { const head = document.head || document.getElementsByTagName('head')[0]; if (head && !document.getElementById(styleId)) { head.appendChild(style); } else { setTimeout(tryInject, 0); // ulang terus sampe <head> muncul } }; tryInject(); // Setelah load, baru tambah toggle dan observer window.addEventListener('DOMContentLoaded', () => { addToggleButton(); startObserver(); }); // Toggle button function addToggleButton() { const btn = document.createElement('button'); btn.innerHTML = '🌓'; btn.title = 'Toggle Dark Mode'; Object.assign(btn.style, { position: 'fixed', bottom: '20px', right: '20px', zIndex: '99999', padding: '10px 15px', background: '#222', color: '#fff', border: 'none', borderRadius: '5px', cursor: 'pointer', fontSize: '16px', opacity: '0.6' }); btn.onmouseenter = () => btn.style.opacity = '1'; btn.onmouseleave = () => btn.style.opacity = '0.6'; let darkEnabled = true; btn.onclick = () => { darkEnabled = !darkEnabled; if (darkEnabled) { tryInject(); } else { const s = document.getElementById(styleId); if (s) s.remove(); } }; document.body.appendChild(btn); } // Observer untuk elemen yang dimuat setelah awal const observer = new MutationObserver(() => { if (!document.getElementById(styleId)) { tryInject(); } }); function startObserver() { observer.observe(document.body, { childList: true, subtree: true }); } })(); **/