您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Replaces the background white color with a darker one in order to decrease eye strain
当前为
- 'use strict';
- // ==UserScript==
- // @name White background replacer
- // @namespace http://siavoshkc.com/
- // @version 2.5
- // @description Replaces the background white color with a darker one in order to decrease eye strain
- // @author siavoshkc
- // @match *://*/*
- // @grant none
- // @license MIT
- // @run-at document-idle
- // ==/UserScript==
- const goodBgColors = ["#b0edc4", "#79d2a6", "#80e5ff", "#79C664", "#64C6B6","#4DD7C0","#B1CE61", "#61CEB2", "#66C0A9",
- "#6BA6D2", "#4295D3", "#7190DB", "#009900", "#6666ff","#e29d9d", "#7FD7D9", "#7FD997", "#87D97F",
- "#D9BD7F", "#DDA279", "#73CA70", "#7092CA", "#7CCA70", "#ACCA70,", "#ffffb3", "#70CA82", "#c4e87d"]
- const INTERVAL = 120000
- var currentGoodBgColor = 0
- function isWhite(bg) {
- const rgb = bg.match(/[0-9]+/g);
- const hsl = bg.match(/hsl\(\s*(\d+)\s*,\s*(\d+(?:\.\d+)?%)\s*,\s*(\d+(?:\.\d+)?%)\)/)
- return (
- bg == "white"||
- bg == "#ffffff"||
- bg == "#FFFF"||
- bg == "#FFF"||
- bg == "#fff"||
- bg == "#fdfdfd" ||
- (hsl && Number(hsl[3].replace('%','')) > 89) ||
- (rgb && rgb[0] > 230 && rgb[1] > 230 && rgb[2] >230)
- );
- }
- function changeColor(style) {
- console.debug("White background replacer: Trying to change background color ", style.backgroundColor)
- style.backgroundColor = goodBgColors[currentGoodBgColor % goodBgColors.length]
- console.debug("White background replacer: Changing one style background-color to ", goodBgColors[currentGoodBgColor % goodBgColors.length])
- if(style.color == style.backgroundColor) style.color = "black"
- if(currentGoodBgColor === Number.MAX_SAFE_INTEGER) currentGoodBgColor = 0
- else currentGoodBgColor++
- setTimeout(changeColor, INTERVAL, style)
- }
- function iterateRules(cssRules) {
- if(!cssRules) return
- for (let rule of cssRules) {
- try {
- if(checkStyle(rule?.style)){
- changeColor(rule?.style)
- }
- iterateRules(rule.cssRules)
- } catch(e) {
- console.warn("WBR: Caught exception: ".concat(e))
- }
- }
- }
- function checkStyle(style) {
- if(!style) return
- return (
- isWhite(style.background) ||
- isWhite(style.backgroundColor) ||
- isWhite(style.getPropertyValue('--bg')) ||
- isWhite(style.getPropertyValue('--bg-color')) ||
- isWhite(style.getPropertyValue('--background-color')) ||
- isWhite(style.getPropertyValue('--background')) ||
- isWhite(style.getPropertyValue('--lighting-color')) ||
- isWhite(style.getPropertyValue('--theme-background-color')) ||
- isWhite(style.getPropertyValue('--theme-content-background-color'))
- )
- }
- function checkPage() {
- console.debug("White background replacer: Running...", window.getComputedStyle(document.documentElement));
- if(checkStyle(window.getComputedStyle(document.documentElement))){
- changeColor(document.body.style)
- } else if(document.styleSheets?.length > 0) {
- for (let sheet of document.styleSheets) {
- try {
- iterateRules(sheet.cssRules)
- } catch(e) {
- console.warn("WBR: Caught exception: ".concat(e))
- }
- }
- }
- }
- checkPage()