Replaces the background white color with yellow in order to decrease eye strain
当前为
// ==UserScript==
// @name White background replacer
// @namespace http://siavoshkc.ir/
// @version 0.7
// @description Replaces the background white color with yellow in order to decrease eye strain
// @author siavoshkc
// @include *
// @grant none
// @license MIT
// @run-at document-idle
// ==/UserScript==
function changeColor() {
'use strict';
const BG_COLOR = "#ffedc4";
if(document.styleSheets.length == 0) document.body.style.backgroundColor = BG_COLOR;
else
{
for (let sheeti= 0; sheeti<document.styleSheets.length; sheeti++) {
try{
let sheet= document.styleSheets[sheeti];
let rules= sheet.cssRules;
for (let rulei= 0; rulei<rules.length; rulei++) {
let rule= rules[rulei];
if (rule.type==CSSRule.STYLE_RULE)
{
if(rule.style.backgroundColor=="white"||rule.style.backgroundColor=="#ffffff"||rule.style.backgroundColor=="#FFFF"||rule.style.backgroundColor=="#FFF"||rule.style.backgroundColor=="#fff" ||rule.style.backgroundColor=="rgb(255, 255, 255)") rule.style.backgroundColor=BG_COLOR;
else if(!(rule.style.backgroundColor!=undefined || rule.style.backgroundColor!="" ||rule.style.backgroundImage!=undefined || rule.style.backgroundImage==""))
{
let pRule = rule;
let foundParentColor = false;
while(pRule.parentRule != null)
{
pRule = pRule.parentRule;
if(pRule.style.backgroundColor != undefined || pRule.style.backgroundColor != "" || pRule.style.backgroundImage != undefined || pRule.style.backgroundImage != "")
{
foundParentColor = true;
break;
}
}
if(!foundParentColor)
{
rule.style.backgroundColor=BG_COLOR;
console.log("Found no parent color for style "+ rule.style.text);
}
}
}
else if(rule.type==CSSRule.IMPORT_RULE)
{
let importRules = rule.styleSheet.cssRules;
for(let importRulei = 0; importRulei < importRules.length; importRulei++)
{
let importRule = importRules[importRulei];
if(importRule.style.backgroundColor=="white"||importRule.style.backgroundColor=="#ffffff"||importRule.style.backgroundColor=="#FFFF"||importRule.style.backgroundColor=="#FFF"||importRule.style.backgroundColor=="#fff" ||importRule.style.backgroundColor=="rgb(255, 255, 255)") importRule.style.backgroundColor=BG_COLOR;
else if(!(importRule.style.backgroundColor!=undefined || importRule.style.backgroundColor!="" || importRule.style.backgroundImage!=undefined || importRule.style.backgroundImage!=""))
{
let pRule = importRule;
let foundParentColor = false;
while(pRule.parentRule != null)
{
pRule = pRule.parentRule;
if(pRule.style.backgroundColor != undefined || pRule.style.backgroundColor != "" || pRule.style.backgroundImage != undefined || pRule.style.backgroundImage != "")
{
foundParentColor = true;
break;
}
}
if(!foundParentColor)
{
importRule.style.backgroundColor=BG_COLOR;
console.log("Found no parent color for style "+ importRule.style.text);
}
}
}
}
else if(rule.type==CSSRule.MEDIA_RULE)
{
let mediaRules = rule.cssRules;
for(let mediaRulei = 0; mediaRulei < mediaRules.length; mediaRulei++)
{
let mediaRule = mediaRules[mediaRulei];
if(mediaRule.style.backgroundColor=="white"||mediaRule.style.backgroundColor=="#ffffff"||mediaRule.style.backgroundColor=="#FFFF"||mediaRule.style.backgroundColor=="#FFF"||mediaRule.style.backgroundColor=="#fff" ||mediaRule.style.backgroundColor=="rgb(255, 255, 255)") mediaRule.style.backgroundColor=BG_COLOR;
else if(!(mediaRule.style.backgroundColor!=undefined || mediaRule.style.backgroundColor=="" || mediaRule.style.backgroundImage==undefined || mediaRule.style.backgroundImage==""))
{
let pRule = mediaRule;
let foundParentColor = false;
while(pRule.parentRule != null)
{
pRule = pRule.parentRule;
if(pRule.style.backgroundColor != undefined || pRule.style.backgroundColor != "" || pRule.style.backgroundImage != undefined || pRule.style.backgroundImage != "")
{
foundParentColor = true;
break;
}
}
if(!foundParentColor)
{
mediaRule.style.backgroundColor=BG_COLOR;
console.log("Found no parent color for style "+ mediaRule.style.text);
}
}
}
}
else {console.log("Unsupported style rule of type: ".concat(rule.type))};
}
}
catch(e)
{
console.log("Caught exception: ".concat(e));
continue;
}
}
}
};
window.setTimeout(changeColor,10);