您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
change all red text color to preferred one
- // ==UserScript==
- // @name colorblind text helper
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description change all red text color to preferred one
- // @author Something begins
- // @license none
- // @include https://*
- // @grant none
- // ==/UserScript==
- const shadeCoef = 80;
- const toColor = "purple";
- // Function to check if an element is a text element
- function isTextElement(element) {
- return element.nodeType === Node.TEXT_NODE;
- }
- // Function to check if a text element has a red color
- function isRedText(element) {
- const parentElement = element.parentElement;
- if (!parentElement) {
- return false;
- }
- const computedStyle = window.getComputedStyle(parentElement);
- const color = computedStyle.color;
- if (color.startsWith('rgb(')) {
- const rgb = color.match(/\d+/g);
- const red = parseInt(rgb[0]);
- const green = parseInt(rgb[1]);
- const blue = parseInt(rgb[2]);
- if (red > green + shadeCoef && red > blue + shadeCoef) {
- return true;
- }
- } else if (color.startsWith('#')) {
- const hex = color.substr(1);
- const red = parseInt(hex.substr(0, 2), 16);
- const green = parseInt(hex.substr(2, 2), 16);
- const blue = parseInt(hex.substr(4, 2), 16);
- if (red > green + shadeCoef && red > blue + shadeCoef) {
- return true;
- }
- }
- return false;
- }
- // Get all text nodes on the page
- const walker = document.createTreeWalker(
- document.body,
- NodeFilter.SHOW_TEXT,
- { acceptNode: node => NodeFilter.FILTER_ACCEPT }
- );
- const textNodes = [];
- while (walker.nextNode()) {
- textNodes.push(walker.currentNode);
- }
- // Filter text nodes that are red
- const redTextNodes = textNodes.filter(isRedText);
- // Log red text nodes
- redTextNodes.forEach(textNode => {
- console.log('Red text:', textNode);
- textNode.parentElement.style.color = toColor;
- });