豆沙绿护眼模式Plus

改网页背景色为豆沙绿

// ==UserScript==
// @name         豆沙绿护眼模式Plus
// @version      4.2
// @description  改网页背景色为豆沙绿
// @author       ChatGPT
// @run-at       document-start
// @match        *://*/*
// @grant        none
// @namespace https://greasyfork.org/users/452911
// ==/UserScript==

// 检查是否启用夜间模式
function isNightMode() {
  return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
}

if (!isNightMode()) {
  function background() {
    let elementList = document.querySelectorAll('*');
    for (let i = 0; i < elementList.length; i++) {   
      if (!(elementList[i].matches('[class*="player"] > *') || 
          elementList[i].matches('.video > *'))) {
        let srcBgColor = window.getComputedStyle(elementList[i]).backgroundColor;
        let splitArray = srcBgColor.match(/[\d\.]+/g);
        let r = parseInt(splitArray[0], 10),
            g = parseInt(splitArray[1], 10),
            b = parseInt(splitArray[2], 10);
        if (r > 150 && g > 150 && b > 150) {
          elementList[i].style.backgroundColor = '#C7EDCC';
        }
      }
    }
    // 更改链接颜色
    let links = document.querySelectorAll("a[href^='http']:not(.button)");
    for (let i = 0; i < links.length; i++) {
      links[i].style.color = "#40933C";
      links[i].style.textDecoration = "none";
    }
  }
  
  background();
  window.onload = function() {
    background();
  };

  setTimeout(function() {
    let observer = new MutationObserver(function(mutations) {
      background();
      window.setTimeout(background2, 50);
    });
    observer.observe(document.body, {
      childList: true,
      subtree: true
    });
  }, 5);

  function background2() {
    let elements = document.querySelectorAll("DIV#gb-main,DIV.url.clearfix,DIV.nav-bar-v2-fixed > * > *:not(div.nav-bar-bottom),DIV.se-page-hd-content");
    elements.forEach(element => {
      element.style.backgroundColor = "#C7EDCC";
    });
  }

  background2();
  window.setTimeout(background2, 100);
}