您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A userscript to enable dark mode by changing white elements to black and inverting the text color on all websites.
- // ==UserScript==
- // @name Dark Mode
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description A userscript to enable dark mode by changing white elements to black and inverting the text color on all websites.
- // @match *://*/*
- // @author kiwv
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- // Keep track of the dark mode state
- let isDarkMode = true;
- // Apply dark mode initially
- applyDarkMode();
- // Function to apply dark mode
- function applyDarkMode() {
- const elements = document.querySelectorAll('*');
- for (let i = 0; i < elements.length; i++) {
- const element = elements[i];
- // Invert text color
- const color = window.getComputedStyle(element).color;
- const backgroundColor = window.getComputedStyle(element).backgroundColor;
- if (isDarkMode) {
- // Invert text color and change white elements to black
- if (color !== 'rgba(0, 0, 0, 0)' && color !== 'transparent') {
- element.style.color = invertColor(color);
- }
- if (
- backgroundColor === 'rgb(255, 255, 255)' ||
- backgroundColor === 'rgba(255, 255, 255, 0)'
- ) {
- element.style.backgroundColor = '#000';
- }
- }
- }
- // Toggle the document body background color
- document.body.style.backgroundColor = isDarkMode ? '#000' : '';
- }
- // Helper function to invert color
- function invertColor(color) {
- const hexColor = colorToHex(color);
- const invertedHexColor = (Number(`0x1${hexColor}`) ^ 0xffffff)
- .toString(16)
- .substr(1);
- return `#${invertedHexColor}`;
- }
- // Helper function to convert color to hex format
- function colorToHex(color) {
- const rgb = color.match(/\d+/g);
- return (
- ((1 << 24) | (rgb[0] << 16) | (rgb[1] << 8) | Number(rgb[2]))
- .toString(16)
- .slice(1)
- );
- }
- })();